每日一包 - Faker

148 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

介绍

Faker是一个可以帮助生成假数据的包,这个包有什么用呢?

通常我们在编写程序时会用到很多数据对程序进行测试,如果手动制造数据会需要花费大量的时间,此时我们就可以借助Faker生成各种各样的假数据。

安装和使用

安装

pip install Faker

使用

需要使用faker.Faker创建和初始化一个faker生成器,该生成器可以通过参数(需要生成的假数据)来生成数据。

默认情况下生成的随机数据都是英文的,如果想要生成中文的可以在实例化faker对象时,将参数locale设置为zh_CN即可

from faker import Faker
​
# 英文
fake = Faker()  
# 生成名字
print(fake.name())  # Jeffrey Bowen
# 生成随机地址
print(fake.address())  
# 645 Shawn Island Apt. 792
# Lake Rhonda, MD 62829# 中文
fake = Faker(locale='zh_CN')
print(fake.name())  # 何辉
print(fake.address()) # 山西省哈尔滨县长寿熊路N座 552366

每次调用同一个方法都会生成不同的结果,如下代码示例:

for _ in range(10):
  print(fake.name())
​
# 'Adaline Reichel'
# 'Dr. Santa Prosacco DVM'
# 'Noemy Vandervort V'
# 'Lexi O'Conner'
# 'Gracie Weber'
# 'Roscoe Johns'
# 'Emmett Lebsack'
# 'Keegan Thiel'
# 'Wellington Koelpin II'
# 'Ms. Karley Kiehn V'

faker还可以生成很多方面的假数据,如下代码示例

# 地址相关
fake.address()  # 地址
fake.building_number()    # 楼名
fake.city()               # 完整城市名
fake.country()            # 国家名称# 汽车相关
fake.license_plate()      # 牌照# 银行相关
fake.bank_country()          # 银行所属国家
fake.bban()                  # 基本银行账号# 颜色相关
fake.color_name()        # 颜色名称
fake.hex_color()         # 颜色十六进制值
fake.rgb_color()         # 颜色RGB值# 公司相关
fake.bs()                 # 商业用词
fake.catch_phrase()       # 妙句(口号)
fake.company()            # 公司名称
....

faker可以生成非常非常多方面的假数据,这里就不一一列举了,用到的假数据不知道如何生成可以参考一下faker的官方文档。

faker还可以使用命令行进行使用:

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 ...]]

这里简单介绍一下每个参数的意思:

-h : --help,展示帮助信息
--version : 展示版本信息
-o output : 结果输出至指定的文件
-l {bg_BG,cs_CZ,...,zh_CN,zh_TW} : 生成的假数据所使用的的语言
-r REPEAT: 生成指定数量的输出
-s SEP : 指定分隔符

比如如下命令行示例:

$ 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': '628-10-1085', 'birthdate': '2008-03-29'}
​
$ faker -r=3 -s=";" name
Willam Kertzmann;
Josiah Maggio;
Gayla Schmitt;

总结

上面介绍了使用faker创建假数据的一些方式,该模块还有很多其他功能,有兴趣的小伙伴可以参考官方文档进行学习