zoukankan      html  css  js  c++  java
  • python之模拟数据Faker

      Faker,它解决的问题是python模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面展示,效果展示。后端人员数据库数据模拟。今天给大家介绍的这个项目完美的解决了这个方案,可以模拟多种语言的数据,中文,英文,日语,韩语等等。有兴趣的小伙伴可以下载尝试一下。


    安装:
    pip install Faker

    基本用法

    使用faker.Faker()初始化,可通过访问你想要的数据类型来命名的属性生成你要的数据。

    from faker import Faker
    fake = Faker()
    
    fake.name()
    # 'Lucy Cechtelar'
    
    fake.address()
    # '426 Jordy Lodge
    #  Cartwrightshire, SC 88120-6700'
    
    fake.text()
    # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
    #  beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
    #  amet quidem. Iusto deleniti cum autem ad quia aperiam.
    #  A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
    #  quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
    #  voluptatem sit aliquam. Dolores voluptatum est.
    #  Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
    #  Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
    #  Et sint et. Ut ducimus quod nemo ab voluptatum.'
    每次对方法的调用都会fake.name()产生不同的(随机)结果。这是因为造假者将faker.Generator.method_name()呼叫转发给faker.Generator.format(method_name)。

    from faker import Faker
    fake = Faker("zh-CN")
    
    fake.name()
    # '张柳'
    
    fake.address()
    # '黑龙江省辽阳县江北李路C座 461467'
    
    fake.text()
    # '继续浏览音乐行业国内什么.任何同时专业但是人民而且无法.认为大家的是更新.
    数据设备日本更多.生活发表一般最大一下.状态得到游戏今天喜欢.
    专业无法工作这么文化如此感觉教育.工程全部详细注意.现在增加女人一些日本觉得不过.
    感觉原因全部感觉表示.质量所以管理但是因此.图片都是一种注册表示主要汽车影响.
    质量喜欢有关希望更多.已经那个更多决定运行.
    系列名称完全研究女人没有企业.'

    可以自定义不同的语言,也可以输出多种语言,这里我们就展示中英文,有兴趣的可以去查看官方文档

    生成IP地址

    from faker import Faker
    from faker.providers import internet
    
    fake = Faker()
    fake.add_provider(internet)
    
    print(fake.ipv4_private())
    # '192.168.91.234'

    随机生成IP地址,每次产生不同的(随机)结果。

    命令行用法

    faker [-h] [--version] [-o output]
          [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
          [-r REPEAT] [-s SEP]
          [-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
          [fake] [fake argument [fake argument ...]]

    Where:

    • faker: is the script when installed in your environment, in development you could use python -m faker instead
    • -h, --help: 显示帮助文档
    • --version: 显示版本信息
    • -o FILENAME: 将输出重定向到指定的文件名中。
    • -l {bg_BG,cs_CZ,...,zh_CN,zh_TW}: 允许自定义语言,一种或多种语言。
    • -r REPEAT: 指定输出的数量
    • -s SEP: 每次生成输出后,会生成指定的字符
    • -i {my.custom_provider other.custom_provider} list of additional custom providers to use. Note that is the import path of the package containing your Provider class, not the custom Provider class itself.
    • fake: 用于生成输出(例如名称、地址或文本)的伪名称
    • [fake argument ...]: 传递给fake的可选参数

    $ faker address
    968 Bahringer Garden Apt. 722
    Kristinaland, NJ 09890
    
    $ faker -l de_DE address
    Samira-Niemeier-Allee 56
    94812 Biedenkopf
    
    $ faker profile ssn,birthdate
    {'ssn': u'628-10-1085', 'birthdate': '2008-03-29'}
    
    $ faker -r=3 -s=";" name
    Willam Kertzmann;
    Josiah Maggio;
    Gayla Schmitt;

    自定义数据

    如果不想使用默认数据,可以提供自己的单词集。

    fake = Faker()
    
    my_word_list = [
    'danish','cheesecake','sugar',
    'Lollipop','wafer','Gummies',
    'sesame','Jelly','beans',
    'pie','bar','Ice','oat' ]
    
    fake.sentence()
    # 'Expedita at beatae voluptatibus nulla omnis.'
    
    fake.sentence(ext_word_list=my_word_list)
    # 'Oat beans oat Lollipop bar cheesecake.'
    常用方法:
    from faker import Faker
    from faker.providers import internet
    
    fake = Faker("zh-CN")
    
    # 产生随机手机号
    print(fake.phone_number())
    # 产生随机姓名
    print(fake.name())
    # 产生随机地址
    print(fake.address())
    # 随机产生国家名
    print(fake.country())
    # 随机产生国家代码
    print(fake.country_code())
    # 随机产生城市名
    print(fake.city_name())
    # 随机产生城市
    print(fake.city())
    # 随机产生省份
    print(fake.province())
    # 产生随机email
    print(fake.email())
    # 产生随机IPV4地址
    print(fake.ipv4())
    # 产生长度在最大值与最小值之间的随机字符串
    print(fake.pystr(min_chars=0, max_chars=8))
    
    # 随机产生车牌号
    print(fake.license_plate())
    
    # 随机产生颜色
    print(fake.rgb_color())  # rgb
    print(fake.safe_hex_color())  # 16进制
    print(fake.color_name())  # 颜色名字
    print(fake.hex_color()) # 16进制
    
    # 随机产生公司名
    print(fake.company())
    
    # 随机产生工作岗位
    print(fake.job())
    # 随机生成密码
    print(fake.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True))
    # 随机生成uuid
    print(fake.uuid4())
    # 随机生成sha1
    print(fake.sha1(raw_output=False))
    # 随机生成md5
    print(fake.md5(raw_output=False))
    
    # 随机生成女性名字
    print(fake.name_female())
    # 男性名字
    print(fake.name_male())
    # 随机生成名字
    print(fake.name())
    
    # 生成基本信息
    print(fake.profile(fields=None, sex=None))
    print(fake.simple_profile(sex=None))
    
    # 随机生成浏览器头user_agent
    print(fake.user_agent())
    
    # 随机产生时间 月份
    print(fake.month_name())
    # 'May'
    print(fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None))
    # 2005-10-08 08:32:02
    print(fake.time_object(end_datetime=None))
    # 06:45:11
    print(fake.date_time_between(start_date="-10y", end_date="now", tzinfo=None))
    # 2012-08-25 03:07:38
    print(fake.future_date(end_date="+30d", tzinfo=None))
    # 2020-04-25
    print(fake.date_time(tzinfo=None, end_datetime=None))
    # 2002-09-01 18:27:45
    print(fake.date(pattern="%Y-%m-%d", end_datetime=None))
    # '1998-08-02'
    print(fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None))
    # 2020-04-03 16:03:21
    print(fake.timezone())
    # 'Africa/Addis_Ababa'
    print(fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None))
    # 2020-01-09 01:15:08
    print(fake.month())
    # '04'
    print(fake.day_of_week())
    # 'Sunday'
    print(fake.iso8601(tzinfo=None, end_datetime=None))
    # '1988-02-28T09:22:29'
    print(fake.date_object(end_datetime=None))
    # 2017-06-26
    print(fake.date_this_decade(before_today=True, after_today=False))
    # 2020-03-30
    fake.date_this_century(before_today=True, after_today=False)
    # datetime.date(2000, 6, 1)
    fake.date_this_month(before_today=True, after_today=False)
    # datetime.date(2018, 6, 13)
    fake.am_pm()
    # 'AM'
    fake.past_datetime(start_date="-30d", tzinfo=None)
    # datetime.datetime(2018, 6, 25, 7, 41, 34)
    fake.date_this_year(before_today=True, after_today=False)
    # datetime.date(2018, 2, 24)
    fake.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None)
    # datetime.datetime(2018, 6, 26, 14, 40, 5)
    fake.date_time_ad(tzinfo=None, end_datetime=None)
    # datetime.datetime(673, 1, 28, 18, 17, 55)
    fake.date_between_dates(date_start=None, date_end=None)
    # datetime.date(2018, 6, 26)
    fake.future_datetime(end_date="+30d", tzinfo=None)
    # datetime.datetime(2018, 7, 4, 10, 53, 6)
    fake.century()
    # 'IX'
    fake.past_date(start_date="-30d", tzinfo=None)
    # datetime.date(2018, 5, 30)
    fake.time(pattern="%H:%M:%S", end_datetime=None)
    # '01:32:14'
    fake.day_of_month()
    # '19'
    fake.unix_time(end_datetime=None, start_datetime=None)
    
    fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None)
    # datetime.datetime(2018, 5, 24, 11, 25, 25)
    fake.date_between(start_date="-30y", end_date="today")
    # datetime.date(2003, 1, 11)
    fake.year()
    # '1993'
    fake.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None)
    # <generator object time_series at 0x7f44e702a620>
    
    # 随机产生文件
    fake.file_extension(category=None)
    # 'xls'
    print(fake.file_name(category=None, extension=None))
    # 那么.mov
    fake.file_path(depth=1, category=None, extension=None)
    # '/教育/客户.js'
    fake.unix_device(prefix=None)
    # '/dev/sdf'
    print(fake.unix_partition(prefix=None))
    # '/dev/vdv4'
    print(fake.mime_type(category=None))
    # 'message/imdn+xml'

    开源地址: https://github.com/joke2k/fakerv
    项目文档:https://faker.readthedocs.io/en/master/

     
     
     
     
     
     
     
  • 相关阅读:
    一些端口
    outlook 的微软手册
    目录摘要
    L2TP的包过滤规则
    outlook 的外出时助理程序对外部邮箱不起作用。1个解决办法和另外一个可能性
    用editplus 正则表达式修改联系人表
    Cisco NAT的理解。
    outlook 2003 无法记住密码
    ERD commander 2005的下载地址。
    outlook 2003启用日志记录排除故障。
  • 原文地址:https://www.cnblogs.com/xingxia/p/python_faker.html
Copyright © 2011-2022 走看看