1 import random 2 from datetime import date 3 from datetime import timedelta 4 5 6 class fourEl(): 7 8 def __init__(self,sex): 9 self.sex = sex 10 11 def create_phone(self): 12 # 第二个数字 13 second = [3, 4, 5, 7, 8][random.randint(0, 4)] 14 # 第三个数字 15 third = {3: random.randint(0, 9), 16 4: [5, 7, 9][random.randint(0, 2)], 17 5: [i for i in range(10) if i != 4][random.randint(0, 8)], 18 7: [i for i in range(10) if i not in [4, 9]][random.randint(0, 7)], 19 8: random.randint(0, 9), }[second] 20 # 最后8位数字 21 suffix = random.randint(9999999, 100000000) 22 # 拼接手机号 23 return "1{}{}{}".format(second, third, suffix) 24 25 def getdistrictcode(self): 26 codelist = [] 27 # 读取地区码 28 file = open(\'/Users/zhaodi/PycharmProjects/python3/学习/自动化测试脚本/txt文档/身份证号地址对照表.txt\', 29 encoding=\'ISO-8859-1\') 30 lines = file.readlines() 31 # 逐行读取 32 for line in lines: 33 # 如果每行中去重后不为空,并且6位数字中最后两位不为00,则添加到列表里。(最后两位为00时为省份或地级市代码) 34 if line.lstrip().rstrip().strip() != \'\' and (line.lstrip().rstrip().strip())[:6][-2:] != \'00\': 35 codelist.append(line[:6]) 36 return codelist 37 38 def create_idcard(self): 39 codelist = self.getdistrictcode() 40 id = codelist[random.randint(0, len(codelist))] # 地区项 41 id = id + str(random.randint(1950, 1998)) # 年份项 42 da = date.today() + timedelta(days=random.randint(1, 366)) # 月份和日期项 43 id = id + da.strftime(\'%m%d\') 44 easyCode = str(random.randint(100, 300)) 45 46 sex = self.sex 47 if sex == \'男\': 48 if int(easyCode) % 2 == 1: 49 easyCode = easyCode 50 else: 51 easyCode = int(easyCode) + 1 52 53 if sex == \'女\': 54 if int(easyCode) % 2 == 0: 55 easyCode = easyCode 56 57 else: 58 easyCode = int(easyCode) + 1 59 60 id = id + str(easyCode) 61 62 # id = id + str(random.randint(100, 300)) # 顺序号简单处理 63 64 i = 0 65 count = 0 66 weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] # 权重项 67 checkcode = {\'0\': \'1\', \'1\': \'0\', \'2\': \'X\', \'3\': \'9\', \'4\': \'8\', 68 \'5\': \'7\', \'6\': \'6\', \'7\': \'5\', \'8\': \'5\', \'9\': \'3\', \'10\': \'2\'} # 校验码映射 69 for i in range(0, len(id)): 70 count = count + int(id[i]) * weight[i] 71 id = id + checkcode[str(count % 11)] # 算出校验码 72 return id 73 74 def create_name(self): 75 xing = [\'赵\', \'钱\', \'孙\', \'李\', \'周\', \'吴\', \'郑\', \'王\', \'冯\', \'陈\', \'褚\', \'卫\', \'蒋\', \'沈\', \'韩\', \'杨\', \'朱\', \'秦\', \'尤\', \'许\', 76 \'何\', \'吕\', \'施\', \'张\', \'孔\', \'曹\', \'严\', \'华\', \'金\', \'魏\', \'陶\', \'姜\', \'戚\', \'谢\', \'邹\', \'喻\', \'柏\', \'水\', \'窦\', \'章\', 77 \'云\', \'苏\', \'潘\', \'葛\', \'奚\', \'范\', \'彭\', \'郎\', \'鲁\', \'韦\', \'昌\', \'马\', \'苗\', \'凤\', \'花\', \'方\', \'俞\', \'任\', \'袁\', \'柳\', 78 \'酆\', \'鲍\', \'史\', \'唐\', \'费\', \'廉\', \'岑\', \'薛\', \'雷\', \'贺\', \'倪\', \'汤\', \'滕\', \'殷\', \'罗\', \'毕\', \'郝\', \'邬\', \'安\', \'常\', 79 \'乐\', \'于\', \'时\', \'傅\', \'皮\', \'卞\', \'齐\', \'康\', \'伍\', \'余\', \'元\', \'卜\', \'顾\', \'孟\', \'平\', \'黄\', \'和\', \'穆\', \'萧\', \'尹\', 80 \'姚\', \'邵\', \'堪\', \'汪\', \'祁\', \'毛\', \'禹\', \'狄\', \'米\', \'贝\', \'明\', \'臧\', \'计\', \'伏\', \'成\', \'戴\', \'谈\', \'宋\', \'茅\', \'庞\', 81 \'熊\', \'纪\', \'舒\', \'屈\', \'项\', \'祝\', \'董\', \'梁\'] 82 83 ming = [\'的\', \'一\', \'是\', \'了\', \'我\', \'不\', \'人\', \'在\', \'他\', \'有\', \'这\', \'个\', \'上\', \'们\', \'来\', \'到\', \'时\', \'大\', \'地\', 84 \'为\', \'子\', \'中\', \'你\', \'说\', \'生\', \'国\', \'年\', \'着\', \'就\', \'那\', \'和\', \'要\', \'她\', \'出\', \'也\', \'得\', \'里\', \'后\', \'自\', 85 \'以\', \'会\', \'家\', \'可\', \'下\', \'而\', \'过\', \'天\', \'去\', \'能\', \'对\', \'小\', \'多\', \'然\', \'于\', \'心\', \'学\', \'么\', \'之\', \'都\', 86 \'好\', \'看\', \'起\', \'发\', \'当\', \'没\', \'成\', \'只\', \'如\', \'事\', \'把\', \'还\', \'用\', \'第\', \'样\', \'道\', \'想\', \'作\', \'种\', \'开\', 87 \'美\', \'总\', \'从\', \'无\', \'情\', \'己\', \'面\', \'最\', \'女\', \'但\', \'现\', \'前\', \'些\', \'所\', \'同\', \'日\', \'手\', \'又\', \'行\', \'意\', 88 \'动\', \'方\', \'期\', \'它\', \'头\', \'经\', \'长\', \'儿\', \'回\', \'位\', \'分\', \'爱\', \'老\', \'因\', \'很\', \'给\', \'名\', \'法\', \'间\', \'斯\', 89 \'知\', \'世\', \'什\', \'两\', \'次\', \'使\', \'身\', \'者\', \'被\', \'高\', \'已\', \'亲\', \'其\', \'进\', \'此\', \'话\', \'常\', \'与\', \'活\', \'正\', 90 \'感\', \'见\', \'明\', \'问\', \'力\', \'理\', \'尔\', \'点\', \'文\', \'几\', \'定\', \'本\', \'公\', \'特\', \'做\', \'外\', \'孩\', \'相\', \'西\', \'果\', 91 \'走\', \'将\', \'月\', \'十\', \'实\', \'向\', \'声\', \'车\', \'全\', \'信\', \'重\', \'三\', \'机\', \'工\', \'物\', \'气\', \'每\', \'并\', \'别\', \'真\', 92 \'打\', \'太\', \'新\', \'比\', \'才\', \'便\', \'夫\', \'再\', \'书\', \'部\', \'水\', \'像\', \'眼\', \'等\', \'体\', \'却\', \'加\', \'电\', \'主\', \'界\', 93 \'门\', \'利\', \'海\', \'受\', \'听\', \'表\', \'德\', \'少\', \'克\', \'代\', \'员\', \'许\', \'稜\', \'先\', \'口\', \'由\', \'死\', \'安\', \'写\', \'性\', 94 \'马\', \'光\', \'白\', \'或\', \'住\', \'难\', \'望\', \'教\', \'命\', \'花\', \'结\', \'乐\', \'色\', \'更\', \'拉\', \'东\', \'神\', \'记\', \'处\', \'让\', 95 \'母\', \'父\', \'应\', \'直\', \'字\', \'场\', \'平\', \'报\', \'友\', \'关\', \'放\', \'至\', \'张\', \'认\', \'接\', \'告\', \'入\', \'笑\', \'内\', \'英\', 96 \'军\', \'候\', \'民\', \'岁\', \'往\', \'何\', \'度\', \'山\', \'觉\', \'路\', \'带\', \'万\', \'男\', \'边\', \'风\', \'解\', \'叫\', \'任\', \'金\', \'快\', 97 \'原\', \'吃\', \'妈\', \'变\', \'通\', \'师\', \'立\', \'象\', \'数\', \'四\', \'失\', \'满\', \'战\', \'远\', \'格\', \'士\', \'音\', \'轻\', \'目\', \'条\', 98 \'呢\', \'病\', \'始\', \'达\', \'深\', \'完\', \'今\', \'提\', \'求\', \'清\', \'王\', \'化\', \'空\', \'业\', \'思\', \'切\', \'怎\', \'非\', \'找\', \'片\', 99 \'罗\', \'钱\', \'紶\', \'吗\', \'语\', \'元\', \'喜\', \'曾\', \'离\', \'飞\', \'科\', \'言\', \'干\', \'流\', \'欢\', \'约\', \'各\', \'即\', \'指\', \'合\', 100 \'反\', \'题\', \'必\', \'该\', \'论\', \'交\', \'终\', \'林\', \'请\', \'医\', \'晚\', \'制\', \'球\', \'决\', \'窢\', \'传\', \'画\', \'保\', \'读\', \'运\', 101 \'及\', \'则\', \'房\', \'早\', \'院\', \'量\', \'苦\', \'火\', \'布\', \'品\', \'近\', \'坐\', \'产\', \'答\', \'星\', \'精\', \'视\', \'五\', \'连\', \'司\', 102 \'巴\', \'奇\', \'管\', \'类\', \'未\', \'朋\', \'且\', \'婚\', \'台\', \'夜\', \'青\', \'北\', \'队\', \'久\', \'乎\', \'越\', \'观\', \'落\', \'尽\', \'形\', 103 \'影\', \'红\', \'爸\', \'百\', \'令\', \'周\', \'吧\', \'识\', \'步\', \'希\', \'亚\', \'术\', \'留\', \'市\', \'半\', \'热\', \'送\', \'兴\', \'造\', \'谈\', 104 \'容\', \'极\', \'随\', \'演\', \'收\', \'首\', \'根\', \'讲\', \'整\', \'式\', \'取\', \'照\', \'办\', \'强\', \'石\', \'古\', \'华\', \'諣\', \'拿\', \'计\', 105 \'您\', \'装\', \'似\', \'足\', \'双\', \'妻\', \'尼\', \'转\', \'诉\', \'米\', \'称\', \'丽\', \'客\', \'南\', \'领\', \'节\', \'衣\', \'站\', \'黑\', \'刻\', 106 \'统\', \'断\', \'福\', \'城\', \'故\', \'历\', \'惊\', \'脸\', \'选\', \'包\', \'紧\', \'争\', \'另\', \'建\', \'维\', \'绝\', \'树\', \'系\', \'伤\', \'示\', 107 \'愿\', \'持\', \'千\', \'史\', \'谁\', \'准\', \'联\', \'妇\', \'纪\', \'基\', \'买\', \'志\', \'静\', \'阿\', \'诗\', \'独\', \'复\', \'痛\', \'消\', \'社\', 108 \'算\', \'义\', \'竟\', \'确\', \'酒\', \'需\', \'单\', \'治\', \'卡\', \'幸\', \'兰\', \'念\', \'举\', \'仅\', \'钟\', \'怕\', \'共\', \'毛\', \'句\', \'息\', 109 \'功\', \'官\', \'待\', \'究\', \'跟\', \'穿\', \'室\', \'易\', \'游\', \'程\', \'号\', \'居\', \'考\', \'突\', \'皮\', \'哪\', \'费\', \'倒\', \'价\', \'图\', 110 \'具\', \'刚\', \'脑\', \'永\', \'歌\', \'响\', \'商\', \'礼\', \'细\', \'专\', \'黄\', \'块\', \'脚\', \'味\', \'灵\', \'改\', \'据\', \'般\', \'破\', \'引\', 111 \'食\', \'仍\', \'存\', \'众\', \'注\', \'笔\', \'甚\', \'某\', \'沉\', \'血\', \'备\', \'习\', \'校\', \'默\', \'务\', \'土\', \'微\', \'娘\', \'须\', \'试\', 112 \'怀\', \'料\', \'调\', \'广\', \'蜖\', \'苏\', \'显\', \'赛\', \'查\', \'密\', \'议\', \'底\', \'列\', \'富\', \'梦\', \'错\', \'座\', \'参\', \'八\', \'除\', 113 \'跑\', \'亮\', \'假\', \'印\', \'设\', \'线\', \'温\', \'虽\', \'掉\', \'京\', \'初\', \'养\', \'香\', \'停\', \'际\', \'致\', \'阳\', \'纸\', \'李\', \'纳\', 114 \'验\', \'助\', \'激\', \'够\', \'严\', \'证\', \'帝\', \'饭\', \'忘\', \'趣\', \'支\', \'春\', \'集\', \'丈\', \'木\', \'研\', \'班\', \'普\', \'导\', \'顿\', 115 \'睡\', \'展\', \'跳\', \'获\', \'艺\', \'六\', \'波\', \'察\', \'群\', \'皇\', \'段\', \'急\', \'庭\', \'创\', \'区\', \'奥\', \'器\', \'谢\', \'弟\', \'店\', 116 \'否\', \'害\', \'草\', \'排\', \'背\', \'止\', \'组\', \'州\', \'朝\', \'封\', \'睛\', \'板\', \'角\', \'况\', \'曲\', \'馆\', \'育\', \'忙\', \'质\', \'河\', 117 \'续\', \'哥\', \'呼\', \'若\', \'推\', \'境\', \'遇\', \'雨\', \'标\', \'姐\', \'充\', \'围\', \'案\', \'伦\', \'护\', \'冷\', \'警\', \'贝\', \'著\', \'雪\', 118 \'索\', \'剧\', \'啊\', \'船\', \'险\', \'烟\', \'依\', \'斗\', \'值\', \'帮\', \'汉\', \'慢\', \'佛\', \'肯\', \'闻\', \'唱\', \'沙\', \'局\', \'伯\', \'族\', 119 \'低\', \'玩\', \'资\', \'屋\', \'击\', \'速\', \'顾\', \'泪\', \'洲\', \'团\', \'圣\', \'旁\', \'堂\', \'兵\', \'七\', \'露\', \'园\', \'牛\', \'哭\', \'旅\', 120 \'街\', \'劳\', \'型\', \'烈\', \'姑\', \'陈\', \'莫\', \'鱼\', \'异\', \'抱\', \'宝\', \'权\', \'鲁\', \'简\', \'态\', \'级\', \'票\', \'怪\', \'寻\', \'杀\', 121 \'律\', \'胜\', \'份\', \'汽\', \'右\', \'洋\', \'范\', \'床\', \'舞\', \'秘\', \'午\', \'登\', \'楼\', \'贵\', \'吸\', \'责\', \'例\', \'追\', \'较\', \'职\', 122 \'属\', \'渐\', \'左\', \'录\', \'丝\', \'牙\', \'党\', \'继\', \'托\', \'赶\', \'章\', \'智\', \'冲\', \'叶\', \'胡\', \'吉\', \'卖\', \'坚\', \'喝\', \'肉\', 123 \'遗\', \'救\', \'修\', \'松\', \'临\', \'藏\', \'担\', \'戏\', \'善\', \'卫\', \'药\', \'悲\', \'敢\', \'靠\', \'伊\', \'村\', \'戴\', \'词\', \'森\', \'耳\', 124 \'差\', \'短\', \'祖\', \'云\', \'规\', \'窗\', \'散\', \'迷\', \'油\', \'旧\', \'适\', \'乡\', \'架\', \'恩\', \'投\', \'弹\', \'铁\', \'博\', \'雷\', \'府\', 125 \'压\', \'超\', \'负\', \'勒\', \'杂\', \'醒\', \'洗\', \'采\', \'毫\', \'嘴\', \'毕\', \'九\', \'冰\', \'既\', \'状\', \'乱\', \'景\', \'席\', \'珍\', \'童\', 126 \'顶\', \'派\', \'素\', \'脱\', \'农\', \'疑\', \'练\', \'野\', \'按\', \'犯\', \'拍\', \'征\', \'坏\', \'骨\', \'余\', \'承\', \'置\', \'臓\', \'彩\', \'灯\', 127 \'巨\', \'琴\', \'免\', \'环\', \'姆\', \'暗\', \'换\', \'技\', \'翻\', \'束\', \'增\', \'忍\', \'餐\', \'洛\', \'塞\', \'缺\', \'忆\', \'判\', \'欧\', \'层\', 128 \'付\', \'阵\', \'玛\', \'批\', \'岛\', \'项\', \'狗\', \'休\', \'懂\', \'武\', \'革\', \'良\', \'恶\', \'恋\', \'委\', \'拥\', \'娜\', \'妙\', \'探\', \'呀\', 129 \'营\', \'退\', \'摇\', \'弄\', \'桌\', \'熟\', \'诺\', \'宣\', \'银\', \'势\', \'奖\', \'宫\', \'忽\', \'套\', \'康\', \'供\', \'优\', \'课\', \'鸟\', \'喊\', 130 \'降\', \'夏\', \'困\', \'刘\', \'罪\', \'亡\', \'鞋\', \'健\', \'模\', \'败\', \'伴\', \'守\', \'挥\', \'鲜\', \'财\', \'孤\', \'枪\', \'禁\', \'恐\', \'伙\', 131 \'杰\', \'迹\', \'妹\', \'藸\', \'遍\', \'盖\', \'副\', \'坦\', \'牌\', \'江\', \'顺\', \'秋\', \'萨\', \'菜\', \'划\', \'授\', \'归\', \'浪\', \'听\', \'凡\', 132 \'预\', \'奶\', \'雄\', \'升\', \'碃\', \'编\', \'典\', \'袋\', \'莱\', \'含\', \'盛\', \'济\', \'蒙\', \'棋\', \'端\', \'腿\', \'招\', \'释\', \'介\', \'烧\', \'误\', 133 \'乾\', \'坤\'] 134 135 for i in range(1): 136 x = random.randint(0, len(xing)) 137 m1 = random.randint(0, len(ming)) 138 m2 = random.randint(0, len(ming)) 139 n = (self.sex + xing[x] + ming[m1] + ming[m2]) 140 return n 141 142 def create_bankAccount(self): 143 # 工行卡号开头 144 # prefix = "622202" 145 prefix = "621483" # 招行卡 146 for i in range(10): 147 prefix = prefix + str(random.randint(0, 9)) 148 # print(prefix) 149 return prefix 150 151 152 if __name__ == \'__main__\': 153 shul = 0 154 155 while shul < 10: 156 shul = shul + 1 157 a = fourEl(\'女\') 158 b = a.create_name() 159 c = a.create_phone() 160 d = a.create_idcard() 161 e = a.create_bankAccount() 162 163 dateTest = \'{},{},{},{}\n\'.format(b,c,d,e) 164 print(dateTest) 165 166 # file = open(\'/Users/zhaodi/PycharmProjects/python3/学习/自动化测试脚本/txt文档/date\',\'a\',encoding=\'utf-8\') 167 file = open(\'/Users/zhaodi/PycharmProjects/python3/学习/自动化测试脚本/txt文档/Test.csv\',\'a\',encoding=\'utf-8\') 168 169 file.write(dateTest) 170 171 file.close() 172 print(\'写入完成\')