Python中第三方库Faker的使用详解


Posted in Python onApril 02, 2022

背景介绍

今天介绍Python中一个超级神奇的库,99%人用过都喜欢它,剩下的1%没用过!

在如今的大数据时代,数据的价值可想而知。有时候为了做测试,需要模拟真实的环境,但是又不能直接使用真实数据,就需要我们认为制造一些数据出来。

对比Excel,我还是觉得Python制造这样的 "虚拟" 数据,更省时、省力。

周末,突然想到了曾今做过的这个问题,这里为大家做个复盘吧!

需求: 老板让模拟一批数据,用于项目实验,由于一些真实数据不能展示出来,我需要模拟一些数据,字段包括:姓名、所在省份、详细地址、手机号、身份证号、出生年月、邮箱等。

当然,这批数据肯定是需要你最终写入到Excel中,一次性交给老板的。那么,这样的需求,你会做吗?

实战:模拟1w条数据写入Excel

在讲述基础之前,直接上实战,让大家体会一下,如何将生成的模拟数据,最终写入到Excel文件中。

from faker import Faker
import pandas as pd
 
fake = Faker(["zh_CN"])
Faker.seed(0)

def get_data():
    key_list = ["姓名","详细地址","所在省份","手机号","身份证号","出生年月","邮箱"]
    name = fake.name()
    address = fake.address()
    province = address[:3]
    number = fake.phone_number()
    id_card = fake.ssn()
    birth_date = id_card[6:14]
    email = fake.email()
    info_list = [name,address,province,number,id_card,birth_date,email]
    person_info = dict(zip(key_list,info_list))
    return person_info


df = pd.DataFrame(columns=["姓名","详细地址","所在省份","手机号","身份证号","出生年月","邮箱"])
for i in range(10000):
    person_info = [get_data()]
    df1 = pd.DataFrame(person_info)
    df = pd.concat([df,df1])
df.to_excel("模拟数据.xlsx",index=None)

结果如下:

Python中第三方库Faker的使用详解

上述数据纯属模拟,如果雷同,请勿对号!

Python库讲解

这么好用的Python库,究竟应该怎么使用呢?

我们直接使用下面的代码,可以完成这个库的安装。

pip install Faker -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用之前,使用如下代码,导入这个库。

from faker import Faker

在讲述写入到Excel之前,我们先分布讲述一下,每个函数的用法。

1. 生成姓名

fake = Faker(locale='zh_CN')
name = fake.name()
name

结果如下:

Python中第三方库Faker的使用详解

2. 生成详细地址

address = fake.address()
address

结果如下:

Python中第三方库Faker的使用详解

3. 生成所在省份

province = address[:3]
province

结果如下:

Python中第三方库Faker的使用详解

由于这个函数每次运行结果都不一样,所以我才用切片方式,生成省份。当然这里也有特定函数,生成省份。

fake.province()

结果如下:

Python中第三方库Faker的使用详解

4. 生成手机号

number = fake.phone_number()
number

结果如下:

Python中第三方库Faker的使用详解

5. 生成身份证号

id_card = fake.ssn()
id_card

结果如下:

Python中第三方库Faker的使用详解

6. 生成出生年月

birth_date = id_card[6:14]
birth_date

结果如下:

Python中第三方库Faker的使用详解

7. 生成邮箱

email = fake.email()
email

结果如下:

Python中第三方库Faker的使用详解

补充

当然,faker库不仅可以帮助我们生成上述信息,还有很多其它方法可用,这些方法分为以下几类:

  • address 地址
  • person 人物类:性别、姓名等
  • barcode 条码类
  • color 颜色类
  • company 公司类:公司名、email、公司名前缀等
  • credit_card 银行卡类:卡号、有效期、类型等
  • currency 货币
  • date_time 时间日期类:日期、年、月等
  • file 文件类:文件名、文件类型、文件扩展名等
  • internet 互联网类
  • job 工作
  • lorem 乱数假文
  • misc 杂项类
  • phone_number 手机号码类:手机号、运营商号段
  • python python数据
  • profile 人物描述信息:姓名、性别、地址、公司等
  • ssn 社会安全码(身份证号码)
  • user_agent 用户代理

关于这些方法的使用,我们直接参考faker的官网,用起来超方便。

1. address 地址

fake.country()  # 国家
fake.city()  # 城市
fake.city_suffix()  # 城市的后缀,中文是:市或县
fake.address()  # 地址
fake.street_address()  # 街道
fake.street_name()  # 街道名
fake.postcode()  # 邮编
fake.latitude()  # 维度
fake.longitude()  # 经度

2. person 人物

fake.name() # 姓名
fake.last_name() # 姓
fake.first_name() # 名
fake.name_male() # 男性姓名
fake.last_name_male() # 男性姓
fake.first_name_male() # 男性名
fake.name_female() # 女性姓名

3. 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() # 安全颜色名字

4. company 公司

fake.company() # 公司名
fake.company_suffix() # 公司名后缀

5. 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) # 完整卡信息

6. 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)  # 公元后随机日期

7. file 文件

fake.file_name(category="image", extension="png") # 文件名(指定文件类型和后缀名)
fake.file_name() # 随机生成各类型文件
fake.file_extension(category=None) # 文件后缀
fake.mime_type(category=None) # mime-type

8. 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() # 邮箱

9. job 工作

fake.job()#工作职位

10. 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)  # 随机生成成几段文字(列表)

11. phone_number 电话号码

fake.phone_number() # 手机号码
fake.phonenumber_prefix() # 运营商号段,手机号码前三位

12. ssn 社会安全码(身份证)

fake.ssn() # 随机生成身份证号(18位)

13. user_agent 用户代理

fake.user_agent()

以上就是Python中第三方库Faker的使用详解的详细内容,更多关于Python Faker库的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python自动化测试之setUp与tearDown实例
Sep 28 Python
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
python调用API实现智能回复机器人
Apr 10 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Python中一些不为人知的基础技巧总结
May 19 Python
用python编写第一个IDA插件的实例
May 29 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
通过实例了解python property属性
Nov 01 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
python Autopep8实现按PEP8风格自动排版Python代码
Mar 02 Python
Python数据处理的三个实用技巧分享
Python+Tkinter打造签名设计工具
Python正则表达式中flags参数的实例详解
Apr 01 #Python
Python+Tkinter制作专属图形化界面
Pyhton爬虫知识之正则表达式详解
python 离散点图画法的实现
Python学习之迭代器详解
You might like
php GeoIP的使用教程
2011/03/09 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
javascript Array对象基础知识小结
2010/11/16 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
在Python中使用正则表达式的方法
2015/08/13 Python
Python中datetime模块参考手册
2017/01/13 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
Django model序列化为json的方法示例
2018/10/16 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
ALEX AND ANI:手镯,项链,耳环和更多
2017/04/20 全球购物
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
super关键字的用法
2012/04/10 面试题
大一新生军训时的自我评价分享
2013/12/05 职场文书
工程业务员工作职责
2013/12/07 职场文书
党员培训思想汇报
2014/01/07 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书