在软件开发、测试或者数据分析过程中,有时候会需要一些测试数据。做测试的时候,需要模拟真实的环境,但是又不能直接使用真实数据,就需要我们人为制造一些数据出来。
当需要的数据比较多,本身又不存在要手动创建的时候,你会创建造假数据可能比技术本身还让人头疼。今天就为大家介绍一个造假数据的Python神器 - Facker。
Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。它可生成我们生活中大多数常用的数据,包括:姓名、所在省份、详细地址、手机号、身份证号、出生年月、邮箱等。
pip install faker
Faker的使用起来非常简单,先创建一个Faker对象,然后调用方法直接产生需要的数据。
from faker import Faker
# 1. 创建Faker对象,设置语言
faker = Faker(locale='zh_CN')
创建Faker对象的时候需要设置创建的数据对应的语言,默认是英文数据。下面是所有可用的语言值:
可选择的语言:
ar_EG - 阿拉伯语 - 埃及
ar_PS - 阿拉伯语 - 巴勒斯坦
ar_SA - 阿拉伯语 - 沙特阿拉伯
bg_BG - 保加利亚语 - 保加利亚
cs_CZ - 捷克语 - 捷克
de_DE - 德语 - 德国
dk_DK - 丹麦语 - 丹麦
el_GR - 希腊语 - 希腊
en_AU - 英语 - 澳大利亚
en_CA - 英语 - 加拿大
en_GB - 英语 - 英国
en_US - 英语 - 美国
es_ES - 西班牙语 - 西班牙
es_MX - 西班牙语- 墨西哥
et_EE - 爱沙尼亚语 - 爱沙尼亚
fa_IR - 波斯语 - 伊朗
fi_FI - 芬兰语 - 芬兰
fr_FR - 法语 - 法国
hi_IN - 印地语 - 印度
hr_HR - 克罗地亚语
hu_HU - 匈牙利语
hy_AM - 亚美尼亚语
it_IT - 意大利语
ja_JP - 日语
ko_KR - 朝鲜语
ka_GE - 格鲁吉亚语
lt_LT - 立陶宛语
lv_LV - 拉脱维亚语
ne_NP - 尼泊尔语
nl_NL - 德语
no_NO - 挪威语
pl_PL - 波兰语
pt_BR - 葡萄牙语 - 巴西
pt_PT - 葡萄牙语 - 葡萄牙
ru_RU - 俄语
sl_SI - 斯诺文尼亚语
sv_SE - 瑞典语
tr_TR - 土耳其语
uk_UA - 乌克兰语
zh_CN - 简体中文
zh_TW - 繁体中文
通过Faker对象可以调用不同的方法来生成不同的信息对应的数据,下面通过代码生成几个常见的数据:
# 2.常见的信息
# 姓名
print(faker.name())
# 详细地址
print(faker.address())
# 省份
print(faker.province())
# 电话号码
print(faker.phone_number())
# 身份证号码
print(faker.ssn())
# 出生年月
print(faker.ssn()[6:14])
# 邮箱
print(faker.email())
下面是执行结果:
fake.country() # 国家
fake.city() # 城市
fake.city_suffix() # 城市的后缀,中文是:市或县
fake.address() # 地址
fake.street_address() # 街道
fake.street_name() # 街道名
fake.postcode() # 邮编
fake.latitude() # 维度
fake.longitude() # 经度
fake.name() # 姓名
fake.last_name() # 姓
fake.first_name() # 名
fake.name_male() # 男性姓名
fake.last_name_male() # 男性姓
fake.first_name_male() # 男性名
fake.name_female() # 女性姓名
fake.hex_color() # 16进制表示的颜色
fake.rgb_css_color() # css用的rgb色
fake.rgb_color() # 表示rgb色的字符串
fake.color_name() # 颜色名字
fake.safe_hex_color() #安全16进制色
fake.safe_color_name() # 安全颜色名字
fake.company() # 公司名
fake.company_suffix() # 公司名后缀
fake.credit_card_number(card_type=None) # 卡号
fake.credit_card_provider(card_type=None) # 卡的提供者
fake.credit_card_security_code(card_type=None)# 卡的安全密码
fake.credit_card_expire() # 卡的有效期
fake.credit_card_full(card_type=None) # 完整卡信息
fake.date_time(tzinfo=None) # 随机日期时间
fake.iso8601(tzinfo=None) # 以iso8601标准输出的日期
fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None) # 本月的某个日期
fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None) # 本年的某个日期
fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None) # 本年代内的一个日期
fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None) # 本世纪一个日期
fake.date_time_between(start_date="-30y", end_date="now", tzinfo=None) # 两个时间间的一个随机时间
fake.timezone() # 时区
fake.time(pattern="%H:%M:%S") # 时间(可自定义格式)
fake.am_pm() # 随机上午下午
fake.month() # 随机月份
fake.month_name() # 随机月份名字
fake.year() # 随机年
fake.day_of_week() # 随机星期几
fake.day_of_month() # 随机月中某一天
fake.time_delta() # 随机时间延迟
fake.date_object() # 随机日期对象
fake.time_object() # 随机时间对象
fake.unix_time() # 随机unix时间(时间戳)
fake.date(pattern="%Y-%m-%d") # 随机日期(可自定义格式)
fake.date_time_ad(tzinfo=None) # 公元后随机日期
fake.file_name(category="image", extension="png") # 文件名(指定文件类型和后缀名)
fake.file_name() # 随机生成各类型文件
fake.file_extension(category=None) # 文件后缀
fake.mime_type(category=None) # mime-type
fake.ipv4(network=False) # ipv4地址
fake.ipv6(network=False) # ipv6地址
fake.uri_path(deep=None) # uri路径
fake.uri_extension() # uri扩展名
fake.uri() # uri
fake.url() # url
fake.image_url(width=None, height=None) # 图片url
fake.domain_word() # 域名主体
fake.domain_name() # 域名
fake.tld() # 域名后缀
fake.user_name() # 用户名
fake.user_agent() # UA
fake.mac_address() # MAC地址
fake.safe_email() # 安全邮箱
fake.free_email() # 免费邮箱
fake.company_email() # 公司邮箱
fake.email() # 邮箱
fake.job()#工作职位
fake.text(max_nb_chars=200) # 随机生成一篇文章
fake.word() # 随机单词
fake.words(nb=3) # 随机生成几个字
fake.sentence(nb_words=6, variable_nb_words=True) # 随机生成一个句子
fake.sentences(nb=3) # 随机生成几个句子
fake.paragraph(nb_sentences=3, variable_nb_sentences=True) # 随机生成一段文字(字符串)
fake.paragraphs(nb=3) # 随机生成成几段文字(列表)
fake.phone_number() # 手机号码
fake.phonenumber_prefix() # 运营商号段,手机号码前三位
fake.ssn() # 随机生成身份证号(18位)
fake.user_agent()
这里为大家推荐一套Python入门全套视频教程基础+进阶+高级+项目+知识点总结,全套800集完整版(学完可就业/入门到精通),全网最全&官方版本,名师精讲,最适合零基础小白学习的!python视频。