Python Faker库:从零开始生成高质量伪数据

林见深
林见深
发布时间:2026-10-15 | 3人浏览过
原创

本文详细介绍Python中Faker库的安装与核心用法。通过设置locale参数支持中文环境,演示了如何生成随机日期、字母、数字、个人及公司信息、文本、网络URL及地理位置等多类数据。文章涵盖具体代码示例与输出结果,帮助开发者高效进行软件测试数据准备。

在开发或测试阶段,当需要处理大规模数据集时,使用随机生成的伪数据往往比手动构造更为高效。

Faker库概述

Faker是一个专为Python设计的第三方库,专注于生成各种类型的伪数据。借助Faker提供的API,开发者无需手动编写复杂的随机数逻辑,即可轻松生成符合特定格式要求的数据。

安装Faker

在命令行终端(CMD)中,执行以下命令进行安装:

pip install faker

基本使用步骤

首先需要在代码中导入Faker模块。

from faker import Faker
#导入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
# zh_CN:中国-简体
# zh-TW:中国-繁体
# en-US:美国-英语

配置语言编码

 
编码      语种           国家
ar_EG   阿拉伯语    埃及—Arabic (Egypt)
ar_PS   阿拉伯语    巴勒斯坦—Arabic (Palestine)
ar_SA   阿拉伯语    沙特阿拉伯—Arabic (Saudi Arabia)
bg_BG   保加利亚语   保加利亚—Bulgarian
cs_CZ   捷克语 捷克—Czech
de_DE   德语  德国—German
dk_DK   丹麦语 丹麦—Danish
el_GR   希腊语 希腊—Greek
en_AU   英语  澳大利亚—English (Australia)
en_CA   英语  加拿大—English (Canada)
en_GB   英语  英国—English (Great Britain)
en_US   英语  美国—English (United States)
es_ES   西班牙语    西班牙—Spanish (Spain)
es_MX   西班牙语    墨西哥—Spanish (Mexico)
et_EE   爱沙尼亚语   爱沙尼亚—Estonian
fa_IR   波斯语 伊朗—Persian (Iran)
fi_FI   芬兰语 芬兰—Finnish
fr_FR   法语  法国—French
hi_IN   印地语 印度—Hindi
hr_HR   克罗地亚语   克罗地亚—Croatian
hu_HU   匈牙利语    匈牙利—Hungarian
hy_AM   亚美尼亚语   亚美尼亚—Armenian
it_IT   意大利语    意大利—Italian
ja_JP   日语  日本—Japanese
ko_KR   朝鲜语 韩国—Korean
ka_GE   格鲁吉亚语   格鲁吉亚—Georgian (Georgia)
lt_LT   立陶宛语    立陶宛—Lithuanian
lv_LV   拉脱维亚语   拉脱维亚—Latvian
ne_NP   尼泊尔语    尼泊尔—Nepali
nl_NL   德语  荷兰—Dutch (Netherlands)
no_NO   挪威语 挪威—Norwegian
pl_PL   波兰语 波兰—Polish
pt_BR   葡萄牙语    巴西—Portuguese (Brazil)
pt_PT   葡萄牙语    葡萄牙—Portuguese (Portugal)
ru_RU   俄语  俄国—Russian
sl_SI   斯诺文尼亚语  斯诺文尼亚—Slovene
sv_SE   瑞典语 瑞典—Swedish
tr_TR   土耳其语    土耳其—Turkish
uk_UA   乌克兰语    乌克兰—Ukrainian
zh_CN   简体中文    中国—China
zh_TW   繁体中文    中国台湾

生成随机日期数据

注意,每次运行代码时,若未设置随机种子,生成的结果会有所不同;但若设置了固定种子或特定参数,结果可能保持一致。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机年月日:', fake.date(pattern = '%Y-%m-%d'))
print('随机年份:', fake.year())
print('随机月份:',fake.month())
print('随机几号:', fake.day_of_month())
print('随机星期:', fake.day_of_week())
 
 
----------------------------打印结果----------------------------
 
随机年月日: 2004-07-23
随机年份: 2017
随机月份: 05
随机几号: 08
随机星期: Tuesday

生成随机字母

同样,若未调整随机种子,每次执行生成的字母序列将不同;若固定参数,则结果一致。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机字母:',fake.pystr())
print('随机小写字母:',fake.random_element())
print('随机大写字母:',fake.random_letter())
 
 
----------------------------打印结果----------------------------
 
随机字母: aBOfJLhjVkLsQdJLKzaR
随机小写字母: a
随机大写字母: k

生成随机数字

若未重置随机种子,每次生成的数字不同;若固定参数,结果则相同。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机3位数字:',fake.numerify())
print('0-9随机数:',fake.random_digit())
print('1-9随机数:',fake.random_digit_not_null())
print('指定位数的随机数:',fake.random_number(digits=10))
print('随机小数:',fake.pyfloat())
 
 
----------------------------------打印结果----------------------------------
 
随机3位数字: 826
0-9随机数: 2
1-9随机数: 2
指定位数的随机数: 7767087976
随机小数: -38153237102308.8

生成随机个人信息

若未重置随机种子,每次生成的个人信息不同;若固定参数,结果则相同。

print('随机人物名字:',fake.first_name())
print('随机罗马文名字:',fake.first_romanized_name())
print('随机姓:',fake.last_name())
print('随机人物全名:',fake.name())
print('随机全名:',fake.name_female())
print('随机生成身份证号:',fake.ssn())
print('随机生成手机号:',fake.phone_number())
print("随机邮箱:", fake.email())
 
 
------------------------打印结果------------------------
 
随机人物名字: 梅
随机罗马文名字: Yan
随机姓: 杨
随机人物全名: 白欣
随机全名: 陈婷
随机生成身份证号: 445222200008191385
随机生成手机号: 15238181433
随机邮箱: gsu@61.cn

生成随机公司信息

若未重置随机种子,每次生成的公司信息不同;若固定参数,结果则相同。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机公司名:', fake.company())
print('随机公司名后缀:', fake.company_suffix())
print('随机公司名前缀:', fake.company_prefix())
print('随机企业邮箱:', fake.company_email())
 
 
------------------------打印结果------------------------
 
随机公司名: 恒聪百汇网络有限公司
随机公司名后缀: 传媒有限公司
随机公司名前缀: 同兴万点
随机企业邮箱: qyu@30.cn

生成随机文本内容

若未重置随机种子,每次生成的文本不同;若固定参数,结果则相同。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机句话:',fake.sentence())
print('随机一篇文章:',fake.text())
print('随机一个词语:',fake.word())
 
 
-----------------------打印结果-----------------------
 
 
随机句话: 成为日期一样研究日本只是.
随机一篇文章: 操作全国深圳空间报告.新闻学生都是电子这么感觉.您的如果汽车.
生产那些问题人民最大.应该地方客户解决来源原因.
无法合作如果城市应用方法处理.一种解决什么程序东西.方面不会可以生产不是文件.
注意规定图片销售.还有企业地址是否为了.
学习我们免费他们网上.政府继续行业重要参加到了.
进行电脑不同本站.中文一切目前注册知道其他位置.
必须学校发表实现可能.的是成功网络为了比较希望.
随机一个词语: 有关

生成随机网络信息

若未重置随机种子,每次生成的网络信息不同;若固定参数,结果则相同。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机生成域名:',fake.domain_name())
print('随机生成uri地址:',fake.uri())
print('随机生成url地址:',fake.url())
print('随机用户名:',fake.user_name())
 
----------------------打印结果----------------------
 
随机生成域名: chen.cn
随机生成uri地址: https://www.jie.org/main/category/tags/search/
随机生成url地址: http://www.pan.cn/
随机用户名: leikang
 

生成随机地理位置

若未重置随机种子,每次生成的地理位置不同;若固定参数,结果则相同。

from faker import Faker
#引入Faker
 
fake = Faker(locale = 'zh_CN')
# 初始化,设置locale为中文;默认是英文
 
print('随机城市名:', fake.city_name())
print('随机城市:', fake.city())
print('随机区:',fake.district())
print('随机省份名:', fake.province())
print('随机邮编:', fake.postcode())
print('随机国家:', fake.country())
 
 
------------------------------打印结果------------------------------
 
 
随机城市名: 南昌
随机城市: 沈阳市
随机区: 城北
随机省份名: 甘肃省
随机邮编: 800617
随机国家: 保加利亚

总结

本文介绍了Python中使用Faker库生成随机数据的方法。如需了解更多相关技巧,可查阅本站往期文章或继续浏览后续内容,感谢支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表