博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python最假的库:Faker
阅读量:6827 次
发布时间:2019-06-26

本文共 3928 字,大约阅读时间需要 13 分钟。

hot3.png

Python最假的库:Faker

原创: 小歪

先申明下,这里说的Faker和LOL的大魔王没有任何关系,只是恰好重名而已。

故事由来,最近做一个项目时需要随机生成人的名字,百度之后,我是这样写的

def random_first_name():    """百家姓中选择一个"""    name = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许', '何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章', '云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳']    return random.choice(name)def random_last_name():    """生成随机汉语"""    head = random.randint(0xb0, 0xf7)    body = random.randint(0xa1, 0xf9)   # 在head区号为55的那一块最后5个汉字是乱码,为了方便缩减下范围    val = f'{head:x}{body:x}'    str_ = bytes.fromhex(val).decode('gb2312')    return str_name = random_first_name() + random_last_name()

前辈在review的时候说怎么这么复杂,Python中有一个专门生成各类假数据的库:Faker,你去了解下。

Faker

项目地址:faker

安装:pip install Faker

中文生成假数据:Language zh_CN

那么Faker能生成那些假数据了?

from faker import Fakerfake = Faker(locale='zh_CN')# 初始化

地址

fake.street_name()# '广州街fake.city_suffix()# '县'fake.street_address()# '香港路B座'fake.longitude()# -98.702031fake.district()# '璧山'

汽车

fake.license_plate()# HZL 767

银行

fake.bban()# 'KLUX5928618542924'fake.bank_country()# 'GB'fake.iban()# 'GB04BPNH0448315286040'

条形码

fake.ean(length=13)# '0994331656275'fake.ean8()# '51309350'fake.ean13()# '8336323543385'

公司

fake.company_prefix()# '鸿睿思博'fake.bs()# 'embrace strategic schemas'fake.company_suffix()# '科技有限公司'fake.company()# '昂歌信息网络有限公司'

信用卡

fake.credit_card_security_code(card_type=None)# '360'fake.credit_card_full(card_type=None)# 'Diners Club / Carte Blanche\n林 莘\n30311852484679 10/19\nCVC: 388\n'fake.credit_card_number(card_type=None)# '30240280288941'fake.credit_card_expire(start="now", end="+10y", date_format="%m/%y")# '11/26'fake.credit_card_provider(card_type=None)# 'Maestro'

互联网

fake.domain_word(*args, **kwargs)# 'jin'fake.company_email(*args, **kwargs)# 'zoulei@hou.com'fake.free_email(*args, **kwargs)# 'vxu@yahoo.com'fake.ipv4_private(network=False, address_class=None)# '10.202.214.57'fake.ascii_safe_email(*args, **kwargs)# 'baiyan@example.net'fake.email(*args, **kwargs)# 'minggao@gmail.com'fake.image_url(width=None, height=None)# 'https://www.lorempixel.com/817/102'fake.uri_page()# 'category'fake.ipv4_network_class()# 'c'

姓名

fake.first_name_female()# '秀华'fake.name_male()# '郏杰'fake.suffix_female()# ''fake.first_name()# '东'fake.prefix_female()# ''fake.last_name_male()# '扶'fake.last_name()# '荣'fake.name_female()# '曹红'fake.suffix_male()# ''fake.last_name_female()# '辛'fake.last_romanized_name()# 'Zhang'fake.first_romanized_name()# 'Min'fake.romanized_name()# 'Xiuying Qiao'fake.name()# '钟想'

电话

fake.phone_number()# '18874465626'fake.msisdn()# '8086764507444'fake.phonenumber_prefix()# 155

user_agent


这个大家应该很熟悉,常用的就是 fake-useragent这个库

fake.mac_platform_token()# 'Macintosh; Intel Mac OS X 10_12_1'fake.firefox()# ('Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_9_4; rv:1.9.4.20) '#  'Gecko/2012-05-03 04:16:34 Firefox/3.6.10')fake.windows_platform_token()# 'Windows 95'fake.safari()# ('Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1 like Mac OS X; sat-IN) '#  'AppleWebKit/533.2.4 (KHTML, like Gecko) Version/3.0.5 Mobile/8B113 '#  'Safari/6533.2.4')fake.chrome(version_from=13, version_to=63, build_from=800, build_to=899)# ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5331 (KHTML, like Gecko) '#  'Chrome/52.0.838.0 Safari/5331')fake.opera()# 'Opera/8.83.(X11; Linux i686; ce-RU) Presto/2.9.169 Version/10.00'fake.mac_processor()# 'Intel'fake.user_agent()# ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_9 rv:3.0; pa-IN) '#  'AppleWebKit/532.47.6 (KHTML, like Gecko) Version/4.0.1 Safari/532.47.6')fake.linux_platform_token()# 'X11; Linux x86_64'fake.linux_processor()# 'i686'fake.internet_explorer()# 'Mozilla/5.0 (compatible; MSIE 5.0; Windows NT 5.01; Trident/3.1)'

这里举例的都是中文的,当然也有其他语言的,小伙伴可以去官网看看。

最近在和小伙伴刷题,欢迎加入 Leetcode Solutions By All Language

转载于:https://my.oschina.net/u/3826227/blog/1816961

你可能感兴趣的文章
通俗地介绍下---数据结构之堆
查看>>
JQuery实现简单的服务器轮询效果
查看>>
项目Alpha冲刺 1
查看>>
项目Alpha冲刺 10
查看>>
【转载】.NET中使用Redis
查看>>
Go 在游戏行业中的工程实践
查看>>
javascript 性能优化
查看>>
html禁止清除input文本输入缓存
查看>>
数据库MySQL 之 库操作
查看>>
VS2017 添加引用时报错未能正确加载ReferenceManagerPackage包的解决方法(补充 ,使用vs命令工具时提示权限不足,需要管理员权限)...
查看>>
Oracle 11g 概述 chaper1
查看>>
pending list
查看>>
Cesium官方教程9--粒子系统
查看>>
java获取当前时间
查看>>
node:json与csv互转
查看>>
让webstorm里提示nodejs智能补全
查看>>
Dialog中EditText获取焦点,并且自动弹出软键盘
查看>>
缺陷报告的处理流程
查看>>
SQL Server 2008 "重新组织索引"和"重新生成索引"抉择,请大家帮帮看看
查看>>
shell做成csv文件
查看>>