一、声明和解释
- 本文借鉴于知乎id bugfeng的基础上进行了整理,若侵权及删
- 本文基于两个库进行数据的生成以及存储(xlsx格式,其他格式还在研究中).
- 本文以函数的形式进行开发,目前只对元组和列表进行的处理(其他数据类型还在学习中)且可能还存在一些bug,如有发现可指正.
- 最后结果的数据为模拟数据,并非个人真是数据。
- 本文只用作于笔记的存储,无其他意义.
二、正文
引用库
import tablib
from faker import Faker
生产模拟数据
def creatData(number):
arrinfo = []
for i in range(1, number + 1):
arr = []
arr.append(fk.name())
arr.append(fk.province())
arr.append(fk.ssn())
arr.append(fk.job())
arr.append(fk.company())
arr.append(fk.phone_number())
arr.append(fk.email())
arr.append(fk.ipv4())
tuple1 = tuple(arr)
arrinfo.append(tuple1)
return arrinfo
形成数据集
"""
dataTable 数据集名称
header 表头 list
data 数据 list tup
"""
def prodData(header=None,setData=None):
print("1 判断传递的参数是否为空")
if header is None:
print("请传递数据表头")
return 0
if setData is None:
print("请传递数据")
return 0
print("2 创建数据集")
dataTable = tablib.Dataset()
print("3 创建表头")
dataTable.headers = header
print("4 判断数据传入的类型")
print("传递的数据类型为:{}".format(type(setData)))
if type(setData) == list:
for i in setData:
dataTable.append(i)
elif type(setData) == tuple:
dataTable.append(setData)
else:
print("请传递正确的数据类型,可传递list和tuple")
return dataTable
导出
def exportData(filepath=None,data=None):
with open(filepath,'wb') as f:
f.write(data.export('xlsx'))
main
if __name__ == '__main__':
header = ["姓名","省份","身份证","职位","公司","手机号","邮箱","IP地址"]
number = 999
data = creatData(number)
print(data)
dataTable = prodData(header, data)
exportData("../file/个人信息.xlsx",dataTable)
整体代码
import tablib
from faker import Faker
fk = Faker(locale='zh_CN')
def creatData(number):
arrinfo = []
for i in range(1, number + 1):
arr = []
arr.append(fk.name())
arr.append(fk.province())
arr.append(fk.ssn())
arr.append(fk.job())
arr.append(fk.company())
arr.append(fk.phone_number())
arr.append(fk.email())
arr.append(fk.ipv4())
tuple1 = tuple(arr)
arrinfo.append(tuple1)
return arrinfo
"""
dataTable 数据集名称
header 表头 list
data 数据 list tup
"""
def prodData(header=None,setData=None):
print("1 判断传递的参数是否为空")
if header is None:
print("请传递数据表头")
return 0
if setData is None:
print("请传递数据")
return 0
print("2 创建数据集")
dataTable = tablib.Dataset()
print("3 创建表头")
dataTable.headers = header
print("4 判断数据传入的类型")
print("传递的数据类型为:{}".format(type(setData)))
if type(setData) == list:
for i in setData:
dataTable.append(i)
elif type(setData) == tuple:
dataTable.append(setData)
else:
print("请传递正确的数据类型,可传递list和tuple")
return dataTable
def exportData(filepath=None,data=None):
with open(filepath,'wb') as f:
f.write(data.export('xlsx'))
if __name__ == '__main__':
header = ["姓名","省份","身份证","职位","公司","手机号","邮箱","IP地址"]
number = 999
data = creatData(number)
print(data)
dataTable = prodData(header, data)
exportData("../file/个人信息.xlsx",dataTable)
三、结果