IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 比起python造假,还有比faker更牛的? -> 正文阅读

[Python知识库]比起python造假,还有比faker更牛的?

李相赫,ID:faker,绰号“大魔王”,司职《英雄联盟》中单,1996年5月7日出生于韩国,是国际电子竞技俱乐部T1英雄联盟分部的队员之一?

七年拿下17个冠军,集41大荣誉于一身。

..................

图片

哈哈,扯远了。说正事!

在编写程序过程中,我们常常需要用到很多数据来进行测试。

图片

比如姓名、性别、年龄、电话、邮箱等等。

如果手动制造数据的话,起名字比如“小明”、“小红”、“张三”、“李四”这些,有没有考虑这些名字的感受,他们也很累的吧

再比如密码,网上排名最烂的密码,不也是“123456”,“abcdef”,“asdf”这些。

这样无厘头地制作数据确实很伤神,效率还低,那该怎么办?

如果要是手动制造数据的话,肯定要花费大把精力,这不合理。

这时,Python扩展库Faker来了,带着它那各种各样的数据来了。

faker模块主要是用来创建伪数据,无需手动生成或者手写随机数来生成数据,可以利用faker完成伪造大量测试数据的工作

1. 先安装Faker

pip?install?Faker

图片

如果下载速度比较慢的话,可以使用国内镜像源来下载

 

国内源:
-?清华:https://pypi.tuna.tsinghua.edu.cn/simple
-?阿里云:http://mirrors.aliyun.com/pypi/simple/
-?中国科技大学?https://pypi.mirrors.ustc.edu.cn/simple/
-?华中理工大学:http://pypi.hustunique.com/
-?山东理工大学:http://pypi.sdutlinux.org/
-?豆瓣:http://pypi.douban.com/simple/

例如

pip3 install -i https://pypi.doubanio.com/simple/ faker

或者直接下载whl文件

https://pypi.org/project/Faker/#files

图片

基本用法

1. 从faker模块导入Faker这个类。

2. 实例化,保存到变量fake中。

3. 调用name()等方法随机生成一个名字。

4. 调用address()等方法随机生成地址信息。

.......

先来看一个简单的例子

from?faker?import?Faker

#?实例化一个fake对象
fake?=?Faker()

#?虚拟名称
name?=?fake.name()
print('name:',?name)
'''
Kimberly?King
'''

#?虚拟地址
address?=?fake.address()
print('address:',?address)
'''
231?Judith?Square?Apt.?095?New?Andrew,?NC?36233
'''

我不喜欢英文的怎么办呢?要生成中文的随机数据,我们可以在实例化时给locale参数传入‘zh_CN’这个值:

#?实例化一个fake对象
fake?=?Faker(locale?=?'zh_CN')

#?虚拟名称
name?=?fake.name()
print('name:',?name)
'''
name:?王峰
'''

#?虚拟地址
address?=?fake.address()
print('address:',?address)
'''
address:?青海省瑞市金平齐齐哈尔路S座?451088
'''

这数据简直了,真的假的跟真的一样

再来一打繁体中文名字助助兴

for?i?in?range(12):
????print(fake.name())
'''
楊哲瑋
梁雅筑
王淑貞
包惠雯
劉佳樺
張婉婷
趙雅惠
余靜宜
郭傑克
何佳玲
王俊賢
徐庭瑋
'''

除了咱们使用到的中文、英文和繁体中文之外还有那些语言呢?

如果要生成其他语种或地区的数据,我们可以传入相应的地区值:

ar_EG?-?Arabic?(Egypt)
ar_PS?-?Arabic?(Palestine)
ar_SA?-?Arabic?(Saudi?Arabia)
bg_BG?-?Bulgarian
bs_BA?-?Bosnian
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_NZ?-?English?(New?Zealand)
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
ka_GE?-?Georgian?(Georgia)
ko_KR?-?Korean
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)
ro_RO?-?Romanian
ru_RU?-?Russian
sl_SI?-?Slovene
sv_SE?-?Swedish
tr_TR?-?Turkish
uk_UA?-?Ukrainian
zh_CN?-?Chinese?(China?Mainland)
zh_TW?-?Chinese?(China?Taiwan)

更多详细的用法有兴趣的小伙伴可以参考

https://faker.readthedocs.io/en/master/providers.html

图片

那除了生成我们看到的姓名、地址之外呢。能生成一个女盆友吗

address
company
date_time
job
person
phone_number
profile
python
user_agent

虽然不能生成一个女盆友

但是能为你生成女朋友的信息

哈哈,绝了

#?生成女朋友信息
fake?=?Faker(locale?=?'zh_CN')

print('姓名:',?fake.first_name_female())#?随机输出女性中文姓名
print('联系方式:',?fake.phone_number())#?随机输出电话号码
print('地址:',?fake.address())#?随机输出地址
print('公司:',?fake.bs())#?随机输出公司
print('工作:',?fake.job())#?随机输出工作
print('邮箱:',?fake.company_email())#?随机输出邮箱
print('文本:',?fake.text())
'''
姓名:?芳
联系方式:?14511916353
地址:?香港特别行政区太原市新城乌鲁木齐路N座?107880
公司:?drive?wireless?content
工作:?产品/品牌专员
邮箱:?jiejiang@xianglong.cn
文本:?数据我的主题次数电影原因.还有社会名称如此.提供无法阅读研究分析不会.
登录生活教育无法为什说明.不会对于不能各种情况支持.
经济经营大家可是主要决定.说明发布地区包括所有发布.提供希望首页主要操作帮助方式.
不能谢谢类别.业务内容社区如何查看社会积分.
他的美国标题发现完全行业以及.电脑支持应用登录世界公司什么这里.
'''

我们再来看看其他faker的其他的一些方法

User_Agent?=?fake.user_agent()
print(User_Agent)
'''
Opera/9.99.(Windows?NT?10.0;?pt-PT)?Presto/2.9.175?Version/10.00
'''

date_time?=?fake.date_time()
print(date_time)
'''
1987-10-28?16:11:32
'''

pydict?=?fake.pydict()
print(pydict)
'''
{'没有':?'lhQzYRmbaizgldsvUrqg',?'事情':?'cmKxVnESqpAaSOOUfDye',?'这样':?'http://gong.cn/explore/posts/tags/login/',?'销售':?4011,?'看到':?3094,?'文章':?Decimal('-4757937.9745888'),?'工作':?51.3877475789147,?'音乐':?'TsqsYgNgUNJeRfqnppsK',?'正在':?7568,?'上海':?Decimal('-9330365128242.59'),?'女人':?4001}
'''

生成五条个人信息

#?生成5条个人信息
for?i?in?range(5):
????print(f'第{i+1}个人信息如下:',?fake.profile())

'''
第1个人信息如下:?{'job':?'工长', 'company':?'菊风公司网络有限公司', 'ssn':?'530112194208099250', 'residence':?'天津市婷县东城沈阳路Y座 395802', 'current_location':?(Decimal('-44.750624'), Decimal('74.315880')), 'blood_group':?'A-', 'website':?['https://www.nl.com/', 'http://chen.cn/', 'https://www.lilin.cn/'], 'username':?'lichao', 'name':?'詹红梅', 'sex':?'F', 'address':?'湖北省呼和浩特县南湖成都路u座 255339', 'mail':?'xiulan06@hotmail.com', 'birthdate': datetime.date(1993, 6, 13)}
第2个人信息如下:?{'job':?'医疗器械销售代表', 'company':?'天开信息有限公司', 'ssn':?'13013219490419544X', 'residence':?'内蒙古自治区娟县海陵刘街G座 529004', 'current_location':?(Decimal('3.907486'), Decimal('93.448971')), 'blood_group':?'O-', 'website':?['http://www.tao.cn/', 'https://www.cuiqiu.cn/', 'http://qiangxia.cn/', 'http://www.pingjing.cn/'], 'username':?'gangfang', 'name':?'何秀芳', 'sex':?'F', 'address':?'重庆市贵阳县清城哈尔滨路i座 171613', 'mail':?'songqiang@gmail.com', 'birthdate': datetime.date(1974, 2, 10)}
第3个人信息如下:?{'job':?'旅游产品销售', 'company':?'巨奥科技有限公司', 'ssn':?'433101195306163505', 'residence':?'重庆市上海市友好赵街B座 871399', 'current_location':?(Decimal('-16.599713'), Decimal('66.806667')), 'blood_group':?'A-', 'website':?['https://www.jiangliao.cn/', 'https://jia.cn/', 'http://if.cn/', 'http://www.49.com/'], 'username':?'yangcao', 'name':?'黄小红', 'sex':?'F', 'address':?'江西省哈尔滨市花溪佛山路Z座 193056', 'mail':?'swen@hotmail.com', 'birthdate': datetime.date(1943, 6, 25)}
第4个人信息如下:?{'job':?'建筑制图/模型/渲染', 'company':?'迪摩信息有限公司', 'ssn':?'330204194112284564', 'residence':?'澳门特别行政区文县滨城张路y座 987574', 'current_location':?(Decimal('-56.3441425'), Decimal('19.279135')), 'blood_group':?'B-', 'website':?['http://www.juanli.cn/', 'http://www.io.com/', 'http://min.net/'], 'username':?'yan45', 'name':?'楚伟', 'sex':?'F', 'address':?'陕西省六安市门头沟潜江路I座 111666', 'mail':?'hhan@hotmail.com', 'birthdate': datetime.date(1964, 10, 10)}
第5个人信息如下:?{'job':?'生产主管', 'company':?'商软冠联网络有限公司', 'ssn':?'610800198205117557', 'residence':?'新疆维吾尔自治区小红市花溪易路x座 483650', 'current_location':?(Decimal('70.056298'), Decimal('-80.291666')), 'blood_group':?'A+', 'website':?['https://aq.cn/', 'http://www.chang.net/'], 'username':?'li77', 'name':?'欧桂芝', 'sex':?'F', 'address':?'福建省太原市沈北新合山路B座 440615', 'mail':?'leixiuying@yahoo.com', 'birthdate': datetime.date(2007, 6, 14)}
'''

完了我们可以将这些字典导入pandas做数据处理和分析等.....

还是相当实用的

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:04:23  更:2021-08-26 12:04:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 22:58:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计