简介
faker可以为你生成假数据。无论你需要引导你的数据库,创建好看的XML文档,还是对从生产服务中获取的数据进行脱敏,Faker都是适合你。
安装
pip install faker
基本用法
>>> from faker import Faker>>> fake = Faker()>>> fake.name()'Lance Yates'>>> fake.address()'848 Edwin Stravenue Apt. 448\nLoriburgh, ND 43095'>>> fake.text()'Mean economy fight organization else throughout sport. Over Congress also rich should mind. Candidate factor investment national behind stock do.'>>> fake = Faker('zh_CN')>>> fake.name()'周磊'>>> fake.address()'河北省霞县静安刘街D座 151159'>>> fake.text()'可以很多完成进入起来项目以及.主题同时现在项目来源.\n责任系统更多作者根据质量控制.业务留言正在一个起来目前记者.\n继续其中觉得其实语言.行业重要文件环境发布继续.最后各种其他发布.来自电脑教育社会.\n你的企业他们应该.功能东西城市到了准备.出现自己显示搜索汽车一起.\n中心经验公司进入所有地区.社区名称登录服务其中.男人决定在线只是活动.'>>> for _ in range(10):... print(fake.name())... 徐辉卢瑜崔红梅苏玉兰苏兰英杨雷许淑兰鲁佳张帆李倩
Providers
每一个生成器的属性(name, address和lorem)都被称为 "fake"。faker生成器有很多,打包成 "providers"。
>>> from faker import Faker>>> from faker.providers import internet>>> fake = Faker()>>> fake.add_provider(internet)>>> print(fake.ipv4_private())172.29.38.251
本地化
faker.Faker可以接受一个locale作为参数,以返回本地化的数据。如果没有找到本地化的提供者,工厂会返回到默认的en_US locale。
>>> from faker import Faker>>> from faker.providers import internet>>> fake = Faker()>>> fake.add_provider(internet)>>> print(fake.ipv4_private())172.29.38.251>>> >>> from faker import Faker>>> fake = Faker('it_IT')>>> print(fake.name())Gian Corbo >>> >>> from faker import Faker>>> fake = Faker(['it_IT', 'en_US', 'ja_JP'])>>> print(fake.name())Elizabeth Green>>> print(fake.name())Coriolano Liverotti>>> print(fake.name())井上 稔
目前支持的语言如下:
ar_EG - Arabic (Egypt)ar_PS - Arabic (Palestine)ar_SA - Arabic (Saudi Arabia)bg_BG - Bulgarianbs_BA - Bosniancs_CZ - Czechde_DE - Germandk_DK - Danishel_GR - Greeken_AU - English (Australia)en_CA - English (Canada)en_GB - English (Great Britain)en_IN - English (India)en_NZ - English (New Zealand)en_US - English (United States)es_ES - Spanish (Spain)es_MX - Spanish (Mexico)et_EE - Estonianfa_IR - Persian (Iran)fi_FI - Finnishfr_FR - Frenchhi_IN - Hindihr_HR - Croatianhu_HU - Hungarianhy_AM - Armenianit_IT - Italianja_JP - Japaneseka_GE - Georgian (Georgia)ko_KR - Koreanlt_LT - Lithuanianlv_LV - Latvianne_NP - Nepalinl_NL - Dutch (Netherlands)no_NO - Norwegianpl_PL - Polishpt_BR - Portuguese (Brazil)pt_PT - Portuguese (Portugal)ro_RO - Romanianru_RU - Russiansl_SI - Slovenesv_SE - Swedishtr_TR - Turkishuk_UA - Ukrainianzh_CN - Chinese (China)zh_TW - Chinese (Taiwan)
命令行使用
$ faker -husage: faker [-h] [--version] [-v] [-o output] [-l LOCALE] [-r REPEAT] [-s SEP] [--seed SEED] [-i [INCLUDE [INCLUDE ...]]] [fake] [fake argument [fake argument ...]]faker version 4.0.3positional arguments: fake name of the fake to generate output for (e.g. profile) fake argument optional arguments to pass to the fake (e.g. the profile fake takes an optional list of comma separated field names as the first argument)optional arguments: -h, --help show this help message and exit --version show program's version number and exit -v, --verbose show INFO logging events instead of CRITICAL, which is the default. These logging events provide insight into localization of specific providers. -o output redirect output to a file -l LOCALE, --lang LOCALE specify the language for a localized provider (e.g. de_DE) -r REPEAT, --repeat REPEAT generate the specified number of outputs -s SEP, --sep SEP use the specified separator after each output --seed SEED specify a seed for the random generator so that results are repeatable. Also compatible with 'repeat' option -i [INCLUDE [INCLUDE ...]], --include [INCLUDE [INCLUDE ...]] list of additional custom providers to user, given as the import path of the module containing your Provider class (not the provider class itself)supported locales: ar_AA, ar_EG, ar_JO, ar_PS, ar_SA, bg_BG, bs_BA, cs_CZ, de, de_AT, de_CH, de_DE, dk_DK, el_CY, el_GR, en, en_AU, en_CA, en_GB, en_IE, en_IN, en_NZ, en_PH, en_TH, en_US, es, es_CA, es_ES, es_MX, et_EE, fa_IR, fi_FI, fil_PH, fr_CH, fr_FR, fr_QC, he_IL, hi_IN, hr_HR, hu_HU, hy_AM, id_ID, it_IT, ja_JP, ka_GE, ko_KR, la, lb_LU, lt_LT, lv_LV, mt_MT, ne_NP, nl_BE, nl_NL, no_NO, pl_PL, pt_BR, pt_PT, ro_RO, ru_RU, sk_SK, sl_SI, sv_SE, ta_IN, th_TH, tl_PH, tr_TR, tw_GH, uk_UA, zh_CN, zh_TW Faker can take a locale as an optional argument, to return localized data. If no locale argument is specified, the factory falls back to the user's OS locale as long as it is supported by at least one of the providers. - for this user, the default locale is en_US. If the optional argument locale and/or user's default locale is not available for the specified provider, the factory falls back to faker's default locale, which is en_US.examples: $ 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;$ faker -l de_DE addressMina-Adolph-Straße 1/590627 Hildburghausen$ faker profile ssn,birthdate{'ssn': '415-39-7809', 'birthdate': datetime.date(1936, 5, 17)}$ faker -r=3 -s=";" name -l zh_CN李秀珍;潘慧;毛秀荣;
自定义Provider
from faker import Fakerfake = Faker()# first, import a similar Provider or use the default onefrom faker.providers import BaseProvider# create new provider classclass MyProvider(BaseProvider): def foo(self): return 'bar'# then add new provider to faker instancefake.add_provider(MyProvider)# now you can use:fake.foo()# 'bar'
参考资料
- 下载:https://github.com/china-testing/python-api-tesing/blob/master/books.md 搜索书名 管理外包IT服务
- python测试开发项目实战-目录
- 本文涉及的python测试开发库 谢谢点赞!
- 2018最佳人工智能机器学习工具书及下载(持续更新)
- Format Pdf
- pyspark (python) spark大数据分析中文英文工具书籍下载-持续更新 https://china-testing.github.io/spark_books.html
如何定制词组
from faker import Fakerfake = 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.'print(fake.sentence(ext_word_list=my_word_list))# 'Oat beans oat Lollipop bar cheesecake.'
随机
生成器上的.random 属性返回用于生成值的 random.Random 实例。 对于想要影响所有faker实例的插件来说,使用这个可能会很有用。
在使用Faker进行单元测试时,经常会希望生成相同的数据集。为了方便起见,生成器还提供了seed()方法,它给共享的随机数生成器下种子。用相同版本的faker和种子调用相同的方法会产生相同的结果。
每个生成器也可以通过使用 seed_instance() 方法切换到自己的 random.Random.Random 实例,与共享的随机数生成器分开,其作用相同。比如说
请注意,由于我们不断地更新数据集,因此不能保证结果在不同的补丁版本之间是一致的。如果你在测试中对结果进行硬编码,请确保你将Faker的版本钉在补丁号上。
from faker import Fakerfake = Faker()fake.randomfake.random.getstate()from faker import Fakerfake = Faker()Faker.seed(4321)print(fake.name())# 'Margaret Boehm'from faker import Fakerfake = Faker()fake.seed_instance(4321)print(fake.name())# 'Margaret Boehm'
文章转载于:https://www.jianshu.com/p/11e1e96a6265
原著是一个有趣的人,若有侵权,请通知删除
还没有人抢沙发呢~