咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

实例09—自动化写入海量个人模拟信息到Excel文件

模拟场景需求:

由于学习需要,经常处理大量的海量数据,有些隐私数据牵涉到个人权利,不便公开也不能公开, 在需要大量数据来测试或者演示软件功能的时候,派上用场。别说写入5000条,就是更多,擅长循环的计算机都不在话下,下面演示如下。

1、用到的知识点:

Python的循环、随机数random,Python函数定义及返回值,,wb对象基本操作包括创建和保存,ws的操作遍历,cell单元格写入函数返回值操作等。

2、操作步骤思维导图:

操作思路思维导图

核心思想:把自定义函数的返回值构成一个列表,循环n次append到ws工作表对象

3、代码操作编写截图:

''' 编写程序,生成大量随机个人信息,通过openpyxl模块 写入Excel表格,用于在需要获取大量数据来测试或者演示软件功能, 可以避免泄露真实个人隐私数据 ''' # 导入模块 import random import string from openpyxl import Workbook #常用汉字编码(数据太多了,有需要的私信我) StringBase = '''u7684u4e00u4e86u662fu6211u4e0du5728u4eba……''' # 获取邮箱地址(按照我们常用的qq和163,126邮箱为准,名称为数字) def getEmail(): suffix = ['.com',] characters = string.digits username = ''.join((random.choice(characters) for i in range(random.randint(6,12)))) domain = ['qq','163'] return str(int(username))+"@"+random.choice(domain)+random.choice(suffix) # 获取电话号码 def getTelno(): sur = ['13','14','15','16','17','18'] return random.choice(sur) + ''.join((str(random.randint(0,9)) for i in range(9))) # 获取姓名(中国人姓名,可以自行添加百家姓) def getName(): #百家姓列表 surname = ['张','王','李','赵','刘','周','吴','郑','司马','上官','欧阳','舒','闫','陈'] name = ''.join((random.choice(StringBase) for i in range(random.randint(1,2)))) fullname = random.choice(surname) + name return fullname # 获取地址(省市县乡……) def getAddress(): #省份列表 province = ['安徽省',] #地市列表 city = ['阜阳市',] #县市 coun = ['界首市',] #乡镇 xz = ['舒庄镇',] all = random.choice(province)+random.choice(city)+random.choice(coun)+random.choice(xz)+ ''.join((random.choice(StringBase) for i in range(random.randint(3,6))))+'村'+ str(random.randint(0,100))+'号' return all # 获取性别和年龄 def getSex(): return random.choice(('男','女')) def getAge(): return str(random.randint(18,100)) # 主函数 def main(): wb = Workbook() ws = wb.active title = ('姓名','性别','年龄','电话号码','地址','邮箱') ws.append(title) #随机生成50个人的信息,可以改成5000个,甚至更多 for i in range(50): name = getName() sex = getSex() age = getAge() tel = getTelno() address = getAddress() email = getEmail() tmp = [name,sex,age,tel,address,email] #装配列表 ws.append(tmp) wb.save('随机个人数据.xlsx') if __name__ == '__main__': main()

核心代码已经完全列出,缺少点常用汉字编码数据(太多了,限于篇幅)需要完整代码的,请关注+私信。

成果截图

升级版本:可以加入虚拟身份证号码,并且自动填充性别和年龄,请继续关注哦^_^