Faker生成的Mock数据写入Excel&CSV
依赖Faker包
pip install faker
方式一:写入Excel
文件
import xlwt
from faker import Faker
from xpinyin import Pinyin
def create_excel():
# 初始化生成数据的文化选项中文,默认en_US
faker = Faker("zh_CN")
# 引用第三方包,将汉字转为拼音且大写,并设置为人员的UMID编号
py = Pinyin()
# 标题信息
title = ['Name','UMID','Phone','SSN','Address','Email']
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('mockdata',cell_overwrite_ok=True) #添加sheet,参数重复写入
for i in range(50):
username = str(faker.name())
umid = py.get_pinyin(username, '', tone_marks=None, convert='upper')
mock = [username,umid,faker.phone_number(),faker.ssn(),faker.address(),faker.email()]
print(mock)
for j in range(len(title)):
# 写入标题
worksheet.write(0, j, title[j])
# 逐行写入正文内容
worksheet.write(i,j,mock[j])
workbook.save('./mock.xls')
if __name__ == "__main__":
create_excel()
【结果】
方式二:写入CSV
文件
import csv
from faker import Faker
from xpinyin import Pinyin
def create_csv():
# 初始化生成数据的文化选项中文,默认en_US
faker = Faker("zh_CN")
# 引用第三方包,将汉字转为拼音且大写,并设置为人员的UMID编号
py = Pinyin()
# 标题信息
title = ['Name', 'UMID', 'Phone', 'SSN', 'Address', 'Email']
#修改成encoding = 'utf-8-sig,就会解决乱码的问题
with open("./mock.csv","w",encoding='utf-8-sig') as f:
f_csv = csv.writer(f)
f_csv.writerow(title)
for i in range(10):
username = faker.name()
umid = py.get_pinyin(username, '', tone_marks=None, convert='upper')
# 加'\t'避免写入过长的数据变成科学计数
mock = [username, umid, faker.phone_number(), faker.ssn()+'\t', faker.address(), faker.email()]
f_csv.writerow(mock)
if __name__ == "__main__":
create_csv()
- 问题1:写入数字内容过长时,显示科学计数格式
- 解决: 加
'\t'
避免写入过长的数据变成科学计数
- 问题2:写入中文内容乱码问题
- 解决:修改成
encoding = 'utf-8-sig'
,就会解决乱码的问题