Python使用Faker模拟网络虚假数据并保存到Exscl中

Python使用Faker模拟网络虚假数据并保存到Exscl中

1.需要使用三个包,分别将他们导入进项目
sys包用于在命令行执行

from faker import Faker
import xlwt
import sys

2.在我们进行前,先需要创建一个列表,该列表中包含各类信息
例如:电话,出生日期,所属省份(还可添加别的属性,调用faker的方法即可)

def  getInformationList():
    InformationList = []
    faker = Faker(locale='zh_CN')
    InformationList.append(faker.phone_number())
    InformationList.append(faker.date(pattern="%Y-%m-%d", end_datetime=None))
    InformationList.append(faker.province())
    return InformationList

3.编写一个方法,用于接收用户输入的信息
需要是整数,该数字用来显示生成多少条数据,例如输入500,就是生成500条数据,for循环表示,生成字典,字典的 key为名字,Value为信息(列表形式)

def getInformationDict(num):
    InformationDict = {}
    faker = Faker(locale='zh_CN')  # 添加
    for _ in range(int(num)):
        InformationDict[faker.name()] = getInformationList()
    return storedData(InformationDict)

4.编写一个方法,该方法用来将生成的数据写入到Ecsel中
先创建页签,再生成表头,最后通过循环字典中的value来生成数据
生成完成后,进行保存

def storedData(InformationDict):
    filename = xlwt.Workbook(encoding='utf-8')
    worksheet = filename.add_sheet('sheet1')
    worksheet.write(0, 0, label="姓名")
    worksheet.write(0, 1, label="电话号码")
    worksheet.write(0, 2, label="生日")
    worksheet.write(0, 3, label="所属省份")
    i = 1
    try:
        for name in InformationDict:
            worksheet.write(i, 0, label=name)
            worksheet.write(i, 1, label=InformationDict[name][0])
            worksheet.write(i, 2, label=InformationDict[name][1])
            worksheet.write(i, 3, label=InformationDict[name][2])
            i = i + 1
    except IndexError:
        return "Error:列表索引超出了取值范围"
    else:
        filename.save('E:\zidonghuaUI\DataFile.xls')
        return "执行成功"

5.最后,写入执行

if __name__ == '__main__':
    num = sys.argv[1] 
    print(getInformationDict(num))

完整代码如下:

from faker import Faker
import xlwt
import sys

def getInformationDict(num):
    InformationDict = {}
    faker = Faker(locale='zh_CN')  # 添加
    for _ in range(int(num)):
        InformationDict[faker.name()] = getInformationList()
    return storedData(InformationDict)

'''创建一个列表,列表中包含各类人物信息'''
def  getInformationList():
    InformationList = []
    faker = Faker(locale='zh_CN')
    InformationList.append(faker.phone_number())
    InformationList.append(faker.date(pattern="%Y-%m-%d", end_datetime=None))
    InformationList.append(faker.province())
    return InformationList

def storedData(InformationDict):
    filename = xlwt.Workbook(encoding='utf-8')
    worksheet = filename.add_sheet('sheet1')
    worksheet.write(0, 0, label="姓名")
    worksheet.write(0, 1, label="电话号码")
    worksheet.write(0, 2, label="生日")
    worksheet.write(0, 3, label="所属省份")
    i = 1
    try:
        for name in InformationDict:
            worksheet.write(i, 0, label=name)
            worksheet.write(i, 1, label=InformationDict[name][0])
            worksheet.write(i, 2, label=InformationDict[name][1])
            worksheet.write(i, 3, label=InformationDict[name][2])
            i = i + 1
    except IndexError:
        return "Error:列表索引超出了取值范围"
    else:
        filename.save('E:\zidonghuaUI\DataFile.xls')
        return "执行成功"


if __name__ == '__main__':
    num = sys.argv[1] 
    print(getInformationDict(num))

6.关于执行,直接在命令行下执行即可,如下:
如图所示,直接在命令行输入.py文件+需要生成数据的行数,则会生成对应数量的数据,并自动存入到Exscl中。
如图所示,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值