实例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()
核心代码已经完全列出,缺少点常用汉字编码数据(太多了,限于篇幅)需要完整代码的,请关注+私信。
成果截图
升级版本:可以加入虚拟身份证号码,并且自动填充性别和年龄,请继续关注哦^_^