Python 隨機生成測試數(shù)據(jù)的模塊:faker基本使用方法詳解
本文實例講述了Python 隨機生成測試數(shù)據(jù)的模塊:faker基本使用方法。分享給大家供大家參考,具體如下:
本文內(nèi)容:
- faker的介紹
- faker的使用
- 小例子:生成隨機的數(shù)據(jù)表信息
首發(fā)日期:2018-06-15
faker介紹:
- faker是python的一個第三方模塊,是一個github上的開源項目。
- 主要用來創(chuàng)建一些測試用的隨機數(shù)據(jù)。
官方文檔:https://faker.readthedocs.io/en/master/index.html
faker的使用:
1.安裝模塊
pip3 install Faker
【使用faker也能識別成功,不過新版已經(jīng)更新為Faker】
2.導入模塊
from faker import Faker
【主要使用的是Factory類,而導入Faker,會同時導入Factory】

3.使用步驟:
- 3.1初始化:
fake=Faker()
- Faker()調(diào)用的是Factory的create方法,常用參數(shù)選項:
- 用于生成本地化數(shù)據(jù):locale【默認情況下是en_US,所以生成的數(shù)據(jù)是美式英文的】
- zh-CN代表使用中國版
- 想了解更多國家版本,可以參考 https://faker.readthedocs.io/en/master/index.html#localization
- providers是一個包含了多種生成隨機數(shù)據(jù)的生成器的“提供者”,比如他包含了生產(chǎn)隨機姓名的生成器,包含了隨機地址的生成器。如果我們想要自己定義隨機生成的數(shù)據(jù)的規(guī)則,那么我們需要自定義providers。如何生成一個providers,可以參考https://faker.readthedocs.io/en/master/index.html#how-to-create-a-provider
- 用于生成本地化數(shù)據(jù):locale【默認情況下是en_US,所以生成的數(shù)據(jù)是美式英文的】
- Faker()調(diào)用的是Factory的create方法,常用參數(shù)選項:
- 3.2.調(diào)用方法:
- 利用Faker對象調(diào)用方法,調(diào)用方法的返回值就是隨機的數(shù)據(jù)。
- 不同的數(shù)據(jù)需要調(diào)用不同的方法,常見方法參見下面。
from faker import Faker
# fake=Faker() #默認生成美國英文數(shù)據(jù)
fake=Faker(locale='zh_CN')
# 地址類
print("地址類".center(20,"-"))
print(fake.address())#海南省成市豐都深圳路p座 425541
print(fake.street_address())#深圳街X座
print(fake.street_name())#長沙路
print(fake.city_name(),fake.city())#蘭州 貴陽市 (相差“市”)
print(fake.province())#陜西省
#公司類:
print("公司類".center(20,"-"))
print(fake.company())#惠派國際公司信息有限公司
print(fake.company_suffix())#網(wǎng)絡有限公司
print(fake.company_prefix())#鑫博騰飛
#個人信息類
print("個人信息類".center(20,"-"))
print(fake.name())#東浩
print(fake.simple_profile())
#{'username': 'leihan', 'name': '武帥', 'sex': 'F', 'address': '吉林省淮安市雙灤家街C座 210434', 'mail': 'lishao@hotmail.com', 'birthdate': '1988-11-12'}
print(fake.user_name(),fake.password(special_chars=False))#ajiang zI2QbHy02p
#文章類
print("文章類".center(20,"-"))
print(fake.word())#當前
print(fake.words(3))#['歡迎', '支持', '圖片']
print(fake.sentence(3))#精華有關一些.
print(fake.paragraph())#大家電話空間一起操作圖片要求.上海發(fā)展到了之間用戶也是的人.必須記者關系介紹注冊.用戶時候投資發(fā)布.
常用方法:
https://faker.readthedocs.io/en/master/locales/zh_CN.html 由于主要使用中文數(shù)據(jù),所以提供常見的方法示例是中文的。想要了解其他的,可以在官網(wǎng)點擊其他語言,參考示例結果,不過方法大體上都是相同的。
地址信息類:
- fake.address():完整地址,比如海南省成市豐都深圳路p座 425541
- fake.street_address():街道+地址,比如興城路A座
- fake.street_name():街道名,比如宜都街
- fake.city_name():城市名,比如蘭州
- fake.city():城市,比如蘭州市
- fake.province():省份名,比如陜西省
- fake.postcode():郵編
- fake.country():國家
公司信息類:
- fake.company():公司名,比如惠派國際公司信息有限公司
- fake.company_suffix():公司名后綴(公司性質(zhì)),比如網(wǎng)絡有限公司
- fake.company_prefix():公司名前綴,比如鑫博騰飛
日期類:
- fake.date(pattern="%Y-%m-%d", end_datetime=None)
- fake.year():隨機年份
- fake.day_of_week():隨機星期數(shù)
- fake.time(pattern="%H:%M:%S", end_datetime=None):隨機時間
網(wǎng)絡類:
-
fake.company_email():企業(yè)郵箱
-
fake.email():郵箱
個人信息類:
-
fake.name():姓名
-
fake.user_name(*args, **kwargs):用戶名,只是隨機的英文姓名組合,一般是6位
-
fake.phone_number():電話號碼
-
fake.simple_profile(sex=None):簡略個人信息,包括用戶名,姓名,性別,地址,郵箱,出生日期。比如{'username': 'chao', 'name': '胡秀蘭', 'sex': 'M', 'address': '寧夏回族自治區(qū)玉市沙灣寧德路t座 873713', 'mail': 'uxiao@yahoo.com', 'birthdate': '1998-06-12'}
-
fake.profile(fields=None, sex=None):詳略個人信息,比簡略個人信息多出公司名、血型、工作、位置、域名等等信息。
- fake.password():密碼
- 參數(shù)選項:length:密碼長度;special_chars:是否能使用特殊字符;digits:是否包含數(shù)字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母。
- 默認情況:length=10, special_chars=True, digits=True, upper_case=True, lower_case=True
- fake.job():工作
文章類:
- fake.word(ext_word_list=None):隨機詞語
- ext_word_list可以是一個列表,那么詞語會從列表中取
- fake.words(nb=3, ext_word_list=None):隨機多個詞語
- nb是數(shù)量,對于words來說是返回多少個詞語
- fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None):隨機短語(會包括短語結束標志點號)
- fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None):隨機段落
- fake.paragraphs(nb=3, ext_word_list=None):多個隨機段落
數(shù)據(jù)類型類:
- fake.pystr(min_chars=None, max_chars=20):自定義長度的隨機字符串
- fake.pyint():隨機整數(shù)
PS:
想了解Faker的更多用法,可以參考官方文檔:https://faker.readthedocs.io/en/master/index.html
小例子:生成隨機的數(shù)據(jù)表信息
注意:這里為了例子簡便,對于數(shù)據(jù)庫操作就直接使用“命令式”的了,而不使用ORM模型式的了。
實現(xiàn)過程:
- 利用pymysql連接數(shù)據(jù)庫
- 創(chuàng)建表
- 利用fake格式化要插入的數(shù)據(jù)
- 利用pymysql執(zhí)行插入語句
代碼:
import pymysql
from faker import Faker
conn=pymysql.connect(host="localhost",port=3306,user="root",password="123456",db="it",charset="utf8")
cursor=conn.cursor()
#這里給出表結構,如果使用已存在的表,可以不創(chuàng)建表。
sql="""
create table user(
id int PRIMARY KEY auto_increment,
username VARCHAR(20),
password VARCHAR(20),
address VARCHAR(35)
)
"""
cursor.execute(sql)
fake=Faker("zh-CN")
for i in range(20):
sql="""insert into user(username,password,address)
values('%s','%s','%s')"""\
%(fake.user_name(),fake.password(special_chars=False),fake.address())
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
結果:

PS:這里再提供幾款相關工具供大家參考使用:
在線隨機生成個人信息數(shù)據(jù)工具:
http://tools.jb51.net/aideddesign/rnd_userinfo
在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學運算技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python2.7的flask框架之引用js&css等靜態(tài)文件的實現(xiàn)方法
今天小編就為大家分享一篇python2.7的flask框架之引用js&css等靜態(tài)文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python爬蟲實戰(zhàn)演練之采集糗事百科段子數(shù)據(jù)
讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python采集糗事百科段子的數(shù)據(jù),大家可以在過程中查缺補漏,提升水平2021-10-10
python調(diào)用ffmpeg命令行工具便捷操作視頻示例實現(xiàn)過程
現(xiàn)在短視頻很流行,有很多視頻編輯軟件,功能豐富,而我們需要的只是裁剪功能,而且需要用編程的方式調(diào)用,那么最合適的莫過于ffmpeg了2021-11-11
Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟
本文主要介紹了Python集成開發(fā)環(huán)境pycharm配置git的實現(xiàn)步驟,文中通過圖文的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-05-05


