详解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设计模式之单例模式实例
Apr 26 Python
python fabric使用笔记
May 09 Python
python创建临时文件夹的方法
Jul 06 Python
window下eclipse安装python插件教程
Apr 24 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
Python中捕获键盘的方式详解
Mar 28 Python
python反编译学习之字节码详解
May 19 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
python带参数打包exe及调用方式
Dec 21 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
python对指定字符串逆序的6种方法(小结)
Apr 02 Python
Python pandas如何向excel添加数据
May 22 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
使用数据库保存session的方法
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
完美解决PHP中文乱码
2009/11/26 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
页面版文本框智能提示JS代码
2009/11/20 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
vue ssr 指南详读
2018/06/29 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
深入理解 Koa 框架中间件原理
2018/10/18 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
python列表与元组详解实例
2013/11/01 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
2020/06/02 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
财务工作个人求职的自我评价
2013/12/19 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
年度考核表个人总结
2015/03/06 职场文书