详解Python中第三方库Faker


Posted in Python onSeptember 25, 2020

项目开发初期,为了测试方便,我们总要造不少假数据到系统中,尽量模拟真实环境。

比如要创建一批用户名,创建一段文本,电话号码,街道地址、IP地址等等。

平时我们基本是键盘一顿乱敲,随便造个什么字符串出来,当然谁也不认识谁。

现在你不要这样做了,用Faker就能满足你的一切需求。

1. 安装

pip install Faker

2. 简单使用

>>> from faker import Faker
>>> fake = Faker(locale='zh_CN')
>>> fake.name()
'李洁'
>>> fake.address()
'上海市兴安盟县江北东莞路r座 803484'

参数 locale:为生成数据的文化选项(语种),默认为 en_US,只有使用了相关文化,才能生成相对应的随机信息

常见的文化选项:

  • zh_CN - Chinese (China Mainland)
  • zh_TW - Chinese (China Taiwan)
  • en_US - English (United States)

3. 其他方法

3.1 地理信息类

city_suffix():市,县
country():国家
country_code():国家编码
district():区
geo_coordinate():地理坐标
latitude():地理坐标(纬度)
longitude():地理坐标(经度)
postcode():邮编
province():省份
address():详细地址
street_address():街道地址
street_name():街道名
street_suffix():街、路

3.2 基础信息类

ssn():生成身份证号
bs():随机公司服务名
company():随机公司名(长)
company_prefix():随机公司名(短)
company_suffix():公司性质,如'信息有限公司'
credit_card_expire():随机信用卡到期日,如'03/30'
credit_card_full():生成完整信用卡信息
credit_card_number():信用卡号
credit_card_provider():信用卡类型
credit_card_security_code():信用卡安全码
job():随机职位
first_name_female():女性名
first_name_male():男性名
name():随机生成全名
name_female():男性全名
name_male():女性全名
phone_number():随机生成手机号
phonenumber_prefix():随机生成手机号段,如139

3.3 邮箱信息类

ascii_company_email():随机ASCII公司邮箱名
ascii_email():随机ASCII邮箱:
company_email():公司邮箱
email():普通邮箱
safe_email():安全邮箱

3.4 网络基础信息类

domain_name():生成域名
domain_word():域词(即,不包含后缀)
ipv4():随机IP4地址
ipv6():随机IP6地址
mac_address():随机MAC地址
tld():网址域名后缀(.com,.net.cn,等等,不包括.)
uri():随机URI地址
uri_extension():网址文件后缀
uri_page():网址文件(不包含后缀)
uri_path():网址文件路径(不包含文件名)
url():随机URL地址
user_name():随机用户名
image_url():随机URL地址

3.5 浏览器信息类

chrome():随机生成Chrome的浏览器user_agent信息
firefox():随机生成FireFox的浏览器user_agent信息
internet_explorer():随机生成IE的浏览器user_agent信息
opera():随机生成Opera的浏览器user_agent信息
safari():随机生成Safari的浏览器user_agent信息
linux_platform_token():随机Linux信息
user_agent():随机user_agent信息

3.6 数字信息

numerify():三位随机数字
random_digit():0~9随机数
random_digit_not_null():1~9的随机数
random_int():随机数字,默认0~9999,可以通过设置min,max来设置
random_number():随机数字,参数digits设置生成的数字位数
pyfloat():随机Float数字
pyint():随机Int数字(参考random_int()参数)
pydecimal():随机Decimal数字(参考pyfloat参数)

3.7 文本加密类

pystr():随机字符串
random_element():随机字母
random_letter():随机字母
paragraph():随机生成一个段落
paragraphs():随机生成多个段落
sentence():随机生成一句话
sentences():随机生成多句话,与段落类似
text():随机生成一篇文章
word():随机生成词语
words():随机生成多个词语,用法与段落,句子,类似
binary():随机生成二进制编码
boolean():True/False
language_code():随机生成两位语言编码
locale():随机生成语言/国际 信息
md5():随机生成MD5
null_boolean():NULL/True/False
password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母
sha1():随机SHA1
sha256():随机SHA256
uuid4():随机UUID

3.8 时间信息类

date():随机日期
date_between():随机生成指定范围内日期,参数:start_date,end_date
date_between_dates():随机生成指定范围内日期,用法同上
date_object():随机生产从1970-1-1到指定日期的随机日期。
date_time():随机生成指定时间(1970年1月1日至今)
date_time_ad():生成公元1年到现在的随机时间
date_time_between():用法同dates
future_date():未来日期
future_datetime():未来时间
month():随机月份
month_name():随机月份(英文)
past_date():随机生成已经过去的日期
past_datetime():随机生成已经过去的时间
time():随机24小时时间
timedelta():随机获取时间差
time_object():随机24小时时间,time对象
time_series():随机TimeSeries对象
timezone():随机时区
unix_time():随机Unix时间
year():随机年份

4. 实战使用

import pymysql
from faker import Faker

conn = pymysql.connect(host="114.215.129.166", port=3306, user="nice", password="", db="flask201",
            charset="utf8")

cursor = conn.cursor()
sql1 = """drop table if exists faker_user"""
sql2 = """
create table faker_user(
pid int primary key auto_increment,
username varchar(20),
password varchar(20),
address varchar(35) 
)
"""
cursor.execute(sql1)
cursor.execute(sql2)
fake = Faker("zh-CN")
for i in range(20):
  sql = """insert into faker_user(username,password,address) 
  values('%s','%s','%s')""" % (fake.name(), fake.password(special_chars=False), fake.address())
  cursor.execute(sql)

conn.commit()
cursor.close()
conn.close()

到此这篇关于详解Python中第三方库Faker的文章就介绍到这了,更多相关Python第三方库Faker内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python处理json字符串转化为字典的简单实现
Jul 07 Python
python制作websocket服务器实例分享
Nov 20 Python
python获取代码运行时间的实例代码
Jun 11 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
关于django 1.10 CSRF验证失败的解决方法
Aug 31 Python
python装饰器代替set get方法实例
Dec 19 Python
python读取ini配置文件过程示范
Dec 23 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 #Python
python连接mysql数据库并读取数据的实现
Sep 25 #Python
Python3如何使用tabulate打印数据
Sep 25 #Python
如何基于pandas读取csv后合并两个股票
Sep 25 #Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
Sep 25 #Python
python实现人性化显示金额数字实例详解
Sep 25 #Python
python 绘制正态曲线的示例
Sep 24 #Python
You might like
php防盗链的常用方法小结
2010/07/02 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
基于javascript实现彩票随机数生成(简单版)
2020/04/17 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
python双向链表实现实例代码
2013/11/21 Python
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
2019/08/31 Python
ipad上运行python的方法步骤
2019/10/12 Python
python实现串口通信的示例代码
2020/02/10 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
中学教师岗位职责
2013/11/26 职场文书
2014年协会工作总结
2014/11/22 职场文书
党员公开承诺书2015
2015/01/21 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
毕业设计致谢语
2015/05/14 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
电影建党伟业观后感
2015/06/01 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript
Python实现科学占卜 让视频自动打码
2022/04/09 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL