题目
faker生成姓名、性别、身份证号、手机号、用户名、邮箱地址、居住地址、公司名称、工作职位、血型等模拟数据100条。
代码
# 任务:faker生成姓名、性别、身份证号、手机号、用户名、邮箱地址、居住地址、公司名称、工作职位、血型等模拟数据100条。
from faker import Faker
from faker.providers import BaseProvider
import random
class GenderProvider(BaseProvider):
def gender(self):
return random.choice(['男', '女'])
class BloodProvider(BaseProvider):
def blood(self):
return random.choice(['A', 'B', 'AB', 'O'])
class profile_of_employer(BaseProvider):
def __init__(self):
self.fake = Faker('zh_CN')
self.fake.add_provider(GenderProvider)
self.fake.add_provider(BloodProvider)
self.total_data = [
[self.fake.name(),
self.fake.gender(),
self.fake.ssn(),
self.fake.phone_number(),
self.fake.user_name(),
self.fake.email(),
self.fake.address(),
self.fake.company(),
self.fake.job(),
self.fake.blood()
]for _ in range(100)
]
print(self.total_data)
def deal_txt(self):
with open('data_total.txt', 'w', errors='ignore', encoding='utf-8') as output:
output.write('name,gender,id_card,phone,username,email,address,company,job,blood\n')
for row in self.total_data:
rowtxt = '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n' % tuple(row)
output.write(rowtxt)
print("Processing completed to txt")
if __name__ == '__main__':
data = profile_of_employer()
data.deal_txt()