python Faker制造假数据并以csv格式写到文件中

anoconda创建env1环境,在env1环境中安装Faker包

#创建环境env1
conda create --name env1 python=3.7
#激活env1
activate env1
#在env1中安装Faker包
pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple

python代码

生成假数据的fzdata.py文件内容如下:

from faker import Faker
import random


class FakerDemo:
    def __init__(self):
        self.fake = Faker("zh-CN")

    def person(self, count):
        msg = ""
        for i in range(count):
            num = i + 1
            
            user_phone = self.fake.unique.phone_number()
            # 本年代中的日期和时间
            # datetime.datetime(2019, 2, 24, 22, 18, 44)
            phone_start_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)      
            phone_end_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
            user_id = self.fake.unique.ssn()[2:14]
            if i %2 == 0: user_sex = '男'
            else : user_sex = '女'
            user_birth = user_id[6:14]
            user_address = self.fake.address()
            if i % 4 == 0:
                user_type = '奶爸'
            elif i % 4 == 1:
                user_type = '学生'
            elif i % 4 == 2:
                user_type = '养身中年'
            elif i % 4 == 3:
                user_type = '职场青年'
            user_register_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
            user_shopping_frequency = random.randint(2,15)
            user_complaining_frequency = random.randint(2,15)
            if i % 4 == 0:
                user_shopping_bias  = '衣服'
            elif i % 4 == 1:
                user_shopping_bias = '化妆品'
            elif i % 4 == 2:
                user_shopping_bias = '书籍'
            elif i % 4 == 3:
                user_shopping_bias = '数字产品'
                
            if i % 2 == 0:
                user_grade = '会员'
            elif i % 2 == 1:
                user_grade = '普通用户'

            user_receiving_frequency = random.randint(2,15)
            good_id = user_id[2:7]

            if i % 2 == 0:
                good_type = '服装'
            else: good_type = '书籍'
            
            a = random.randint(10,1000)
            b = a+100
            good_price_range = str(a) + '-' + str(b)
            user_shopping_behaviour = '加入购物车'
            shop_id = user_id[3:7]
            shop_star_grade = random.randint(0,6)
            user_shopping_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
            user_receiving_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
            user_complaining_time = self.fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)

            msg += f"{num},{user_phone},{phone_start_time},{phone_end_time},{user_id},{user_sex},{user_birth},{user_address},{user_register_time},{user_shopping_frequency},{user_complaining_frequency},{user_shopping_bias},{user_grade},{user_receiving_frequency},{good_id},{good_type},{good_price_range},{user_shopping_behaviour},{shop_id},{shop_star_grade},{user_shopping_time},{user_receiving_time},{user_complaining_time}\n"
        return msg


if __name__ == '__main__':
    #实例化FakeDemor对象
    f = FakerDemo()
 
    data = f.person(100000)
    //print(data)


    with open("D:\\Apostgraduation\\fzdata\\data.csv", "w") as d:
        d.write(data)

运行

python D:\Apostgraduation\fzdata\fzdata.py

参考文献

https://blog.csdn.net/m0_49949392/article/details/123887701
https://blog.csdn.net/qq_42831466/article/details/119819511

你可能感兴趣的:(1024程序员节)