【Python】faker模块_生成假数据
安装
pip install faker
引用
from faker import Faker
使用
# coding:utf-8 from faker import Faker if __name__=="__main__": # 实例化Faker (默认英文) fake = Faker() print(fake.name())
常见语言
简体中文:zh_CN
繁体中文:zh_TW
美国英文:en_US
英国英文:en_GB
德文:de_DE
日文:ja_JP
韩文:ko_KR
法文:fr_FR
示例
# coding:utf-8 from faker import Faker if __name__=="__main__": # 实例化Faker (默认英文) fake = Faker('zh_CN') print(fake.name())
查看faker内置对象
fake.providers
result
[<faker.providers.user_agent.Provider object at 0x059FF130>, <faker.providers.ssn.zh_CN.Provider object at 0x059B7F70>, <faker.providers.python.Provider object at 0x059B7FE8>, <faker.providers.profile.Provider object at 0x059B7FA0>, <faker.providers.phone_number.zh_CN.Provider object at 0x059B7E08>, <faker.providers.person.zh_CN.Provider object at 0x059B7DC0>, <faker.providers.misc.en_US.Provider object at 0x059B7C88>, <faker.providers.lorem.zh_CN.Provider object at 0x059B7CD0>, <faker.providers.job.zh_CN.Provider object at 0x059B7AC0>, <faker.providers.isbn.Provider object at 0x059B7B80>, <faker.providers.internet.zh_CN.Provider object at 0x059B7B08>, <faker.providers.geo.en_US.Provider object at 0x059B7A18>, <faker.providers.file.Provider object at 0x059B7898>, <faker.providers.date_time.zh_CN.Provider object at 0x059B7928>, <faker.providers.currency.en_US.Provider object at 0x059B7700>, <faker.providers.credit_card.en_US.Provider object at 0x059B7418>, <faker.providers.company.zh_CN.Provider object at 0x059B7790>, <faker.providers.color.en_US.Provider object at 0x059B7508>, <faker.providers.barcode.en_US.Provider object at 0x059B7448>, <faker.providers.bank.en_GB.Provider object at 0x059B74C0>, <faker.providers.automotive.en_US.Provider object at 0x00D19E08>, <faker.providers.address.zh_CN.Provider object at 0x059B7328>]
常用方法
person 人物类:性别、姓名等
fake.name() # 姓名 fake.last_name() # 姓 fake.first_name() # 名 fake.name_male() # 男性姓名 fake.name_female() # 女性姓名 address 地址
fake.country() # 国家 fake.city() # 城市 fake.city_suffix() # 城市的后缀,中文是:市或县 fake.address() # 地址 fake.street_address() # 街道 fake.street_name() # 街道名 fake.postcode() # 邮编 fake.latitude() # 维度 fake.longitude() # 经度 company 公司类:公司名、email、公司名前缀等
fake.company() # 公司名 fake.company_suffix() # 公司名后缀 color 颜色类
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() # 安全颜色名字 credit_card 银行卡类:卡号、有效期、类型等
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) # 完整卡信息 date_time 时间日期类:日期、年、月等
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) # 公元后随机日期 file 文件类:文件名、文件类型、文件扩展名等
fake.file_name(category="image", extension="png") # 文件名(指定文件类型和后缀名) fake.file_name() # 随机生成各类型文件 fake.file_extension(category=None) # 文件后缀 fake.mime_type(category=None) # mime-type internet 互联网类
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() # 邮箱 lorem 乱数假文
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) # 随机生成成几段文字(列表) phone_number 手机号码类:手机号、运营商号段
fake.phone_number() # 手机号码 fake.phonenumber_prefix() # 运营商号段,手机号码前三位 user_agent 用户代理
faker.chrome(version_from=13, version_to=63, build_from=800, build_to=899) faker.firefox() faker.internet_explorer() faker.linux_platform_token() faker.linux_processor() faker.mac_platform_token() faker.mac_processor() faker.opera() faker.safari() faker.user_agent() faker.windows_platform_token() Geo 用于生成地理位置相关数据,包括纬度、经度、时区等
faker.coordinate(center=None, radius=0.001) # Decimal('-114.420686') faker.latitude() # Decimal('-9.772541') faker.latlng() # (Decimal('-27.0730915'), Decimal('-5.919460')) faker.local_latlng(country_code="US", coords_only=False) # ('41.47892', '-87.45476', 'Schererville', 'US', 'America/Chicago') faker.location_on_land(coords_only=False) # ('12.74482', '4.52514', 'Argungu', 'NG', 'Africa/Lagos') faker.longitude() # Decimal('40.885895') Misc 用于生成模糊数据,如密码、sha1、sha256、md5 等加密后的内容
faker.boolean(chance_of_getting_true=50) # True faker.md5(raw_output=False) # '3166fa26ffd3f2a33e020dfe11191ac6' faker.null_boolean() # False faker.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True) # 'W7Ln8La@%O' faker.sha1(raw_output=False) # 'c8301a2a79445439ee5287f38053e4b3a05eac79' faker.sha256(raw_output=False) # '1e909d331e20cf241aaa2da894deae5a3a75e5cdc35c053422d9b8e7ccfa0402' faker.uuid4(cast_to=<class 'str'>) # '6e6fe387-6877-48d9-94ea-4263c4c71aa5' barcode 条码类
fake.ean8() # 8位条码 fake.ean13() # 13位条码 job 工作
ssn 社会安全码(身份证号码)
currency 货币
数据共享:通过seed保持数据一致
from faker import Faker class Test: def __init__(self): self.fk = Faker(locale="zh-CN") def test01(self): Faker.seed(1111) print(self.fk.name()) def test02(self): Faker.seed(1111) print(self.fk.name()) if __name__ == '__main__': cl = Test() cl.test01() cl.test02() 张建 张建
自定义内置数据
from faker import Faker from faker.providers import BaseProvider class PY36(BaseProvider): names = ('张三', '李四', '王五', '赵六') def py36_name(self): return self.random_element(PY36.names) #在names中随机取一个值 # 添加provider fk = Faker(locale='zh_CN') fk.add_provider(PY36) print(fk.py36_name())
-------------------------------------------------------------------------------------
如果万事开头难 那请结局一定圆满 @ Phoenixy
-------------------------------------------------------------------------------------
分类:
Python
标签:
python 模块及工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!