目錄
- 楔子
- faker使用方法
- 基本使用
- 地理信息類
- 基礎(chǔ)信息類
- 計算機基礎(chǔ)、Internet信息類
- 網(wǎng)絡(luò)基礎(chǔ)信息類
- 瀏覽器信息類
- 數(shù)字類
- 文本、加密類
- 時間信息類
- 小結(jié)
楔子
我們平時在做測試的時候,經(jīng)常會使用一些假數(shù)據(jù),而Python中有一個包叫faker(不是打LOL的那個),專門用來生成假數(shù)據(jù),并且生成的假數(shù)據(jù)非常逼真,下面我們就來看一下。
faker使用方法
基本使用
faker使用起來非常簡單,我們看一下就知道了。
from faker import Faker
# 導(dǎo)入Faker這個類, 實例化即可
fake = Faker(locale="zh_CN")
# 然后調(diào)用里面的方法即可生成相應(yīng)的假數(shù)據(jù)
print(fake.name()) # 謝秀華
print(fake.address()) # 四川省莉縣白云沈陽路o座 313522
看起來還挺逼真的,但是有一點需要注意,這里的地址并不是真實的地址,而是隨機組合出來的,也就是將省、市、道路之類的隨機組合在一起。
另外我們在實例化Faker這個類的時候,指定了locale="zh_CN",表示生成中文數(shù)據(jù),因為默認是英文數(shù)據(jù)。faker可以生成多個語言的假數(shù)據(jù),支持的語言如下:
- 簡體中文:zh_CN
- 繁體中文:zh_TW
- 美國英文:en_US
- 英國英文:en_GB
- 德文:de_DE
- 日文:ja_JP
- 韓文:ko_KR
- 法文:fr_FR
我們舉個栗子:
from faker import Faker
fake = Faker(locale="ja_JP")
# 指定為日本
print(fake.name()) # 渚 あすか
print(fake.address()) # 栃木県西多摩郡奧多摩町花川戸41丁目7番10號 コート中宮祠994
# 指定為臺灣
fake = Faker(locale="zh_TW")
print(fake.name()) # 趙美琪
print(fake.address()) # 23149 新營頂福州巷3段653號3樓
除了上面的name和address,faker還支持生成很多其它的數(shù)據(jù)。
地理信息類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 隨機打印一個國家, 此時跟Faker里面locale無關(guān)
print(fake.country()) # 吉布提
# 2. 國家編碼, 此時跟Faker里面locale無關(guān)
print(fake.country_code()) # KW
# 3. 打印區(qū), 此時是中國的區(qū)
print(fake.district()) # 朝陽
# 4. 打印緯度
print(fake.latitude()) # -39.076213
# 5. 打印經(jīng)度
print(fake.longitude()) # 138.988316
# 6. 打印郵編
print(fake.postcode()) # 881534
# 7. 打印省份
print(fake.province()) # 新疆維吾爾自治區(qū)
# 8. 打印詳細地址
print(fake.address()) # 河北省淑英縣豐都永安街D座 260864
# 9. 打印街道地址
print(fake.street_address()) # 姜街c座
# 10. 打印街道名
print(fake.street_name()) # 海門街
# 11. 獲取市、縣 (打印的是后綴, 要么是縣、要么是市)
print(fake.city_suffix()) # 市
print(fake.city_suffix()) # 縣
# 12. 打印街、路(打印的是后綴, 要么是路、要么是街)
print(fake.street_suffix()) # 路
print(fake.street_suffix()) # 街
基礎(chǔ)信息類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 生成身份證號
print(fake.ssn()) # 513428197105280989
# 2. 生成公司服務(wù)名
print(fake.country_code()) # HT
# 3. 隨機公司名(長)
print(fake.company()) # 創(chuàng)聯(lián)世紀(jì)科技有限公司
# 4. 隨機公司名(短)
print(fake.company_prefix()) # 信誠致遠
# 5. 公司性質(zhì)
print(fake.company_suffix()) # 信息有限公司
# 6. 隨機信用卡到期日
print(fake.credit_card_expire()) # 03/28
# 7. 生成完整信用卡信息
print(fake.credit_card_full())
"""
xx JCB 16 digit
勇 趙
3505427828999283 12/22
CVC: 463
"""
# 8. 信用卡號
print(fake.credit_card_number()) # 44980244740048
# 9. 信用卡類型
print(fake.credit_card_provider()) # Mastercard
# 10. 信用卡安全碼
print(fake.credit_card_security_code()) # 581
# 11. 隨機職位
print(fake.job()) # 新媒體運營
# 12. 女性的名
print(fake.first_name_female()) # 麗娟
# 13. 男性的名
print(fake.first_name_male()) # 彬
# 14. 女性的姓和男性的姓, 這里的姓和上面的名組合起來得到一個完整的姓名
# 說實話個人覺得last_name_female打印姓有點別扭, 可能老外習(xí)慣將姓寫在后、名字也在前
# 另外,關(guān)于姓,個人覺得其實男女沒有太大區(qū)別
print(fake.last_name_female()) # 高
print(fake.last_name_male()) # 楊
# 15. 打印全名
print(fake.name()) # 田小紅
# 16. 男性全名
print(fake.name_male()) # 朱燕
# 17. 女性全名
print(fake.name_female()) # 王凱
# 18. 隨機生成手機號
print(fake.phone_number()) # 18035736881
# 19. 隨機生成手機號段
print(fake.phonenumber_prefix()) # 147
計算機基礎(chǔ)、Internet信息類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 隨機ASCII公司郵箱名
print(fake.ascii_company_email()) # minghan@jy.org
# 2. 隨機ASCII郵箱
print(fake.ascii_email()) # gang38@yongcui.cn
# 3. 公司郵箱
print(fake.company_email()) # xiuyinggao@guoxia.org
# 4. 郵箱
print(fake.email()) # yang28@hotmail.com
# 5. 安全郵箱
print(fake.safe_email()) # jieqiao@example.com
網(wǎng)絡(luò)基礎(chǔ)信息類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 生成域名
print(fake.domain_name()) # lijuan.net
# 2. 域詞(即,不包含后綴)
print(fake.domain_word()) # weiyang
# 3. 隨機IP4地址
print(fake.ipv4()) # 12.16.224.95
# 4. 隨機IP6地址
print(fake.ipv6()) # e6b:5814:4d63:1496:9e0d:eb44:e114:722b
# 5. 隨機MAC地址
print(fake.mac_address()) # 8a:1c:ce:eb:f0:5c
# 6. 網(wǎng)址域名后綴(com, net, cn等等,不包括.)
print(fake.tld()) # cn
# 7. 隨機URI地址
print(fake.uri()) # https://na.cn/login/
# 8. 網(wǎng)址文件后綴
print(fake.uri_extension()) # .htm
# 9. 網(wǎng)址文件(不包含后綴)
print(fake.uri_page()) # homepage
# 10. 網(wǎng)址文件路徑(不包含文件名)
print(fake.uri_path()) # categories
# 11. 隨機URL地址
print(fake.url()) # https://jingsong.cn/
# 12. 隨機用戶名
print(fake.user_name()) # jing13
# 13. 隨機URL地址
print(fake.image_url()) # https://dummyimage.com/109x622
瀏覽器信息類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 隨機生成Chrome的瀏覽器user_agent信息
print(fake.chrome())
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7) AppleWebKit/535.0 (KHTML, like Gecko) Chrome/26.0.870.0 Safari/535.0
# 2. 隨機生成FireFox的瀏覽器user_agent信息
print(fake.firefox())
# Mozilla/5.0 (Android 3.2.2; Mobile; rv:15.0) Gecko/15.0 Firefox/15.0
# 3. 隨機生成IE的瀏覽器user_agent信息
print(fake.internet_explorer())
# Mozilla/5.0 (compatible; MSIE 8.0; Windows 98; Win 9x 4.90; Trident/3.1)
# 4. 隨機生成Opera的瀏覽器user_agent信息
print(fake.opera())
# Opera/9.47.(X11; Linux i686; cv-RU) Presto/2.9.186 Version/11.00
# 5. 隨機生成Safari的瀏覽器user_agent信息
print(fake.safari())
"""
Mozilla/5.0 (iPod; U; CPU iPhone OS 4_2 like Mac OS X; ne-NP)
AppleWebKit/534.29.1 (KHTML, like Gecko) Version/3.0.5 Mobile/8B119 Safari/6534.29.1
"""
# 6. 隨機Linux信息
print(fake.linux_platform_token()) # X11; Linux x86_64
# 7. 隨機user_agent信息
print(fake.user_agent())
# Mozilla/5.0 (Windows NT 5.0; si-LK; rv:1.9.1.20) Gecko/2017-09-23 19:50:28 Firefox/3.8
數(shù)字類
這個意義不大,完全可以使用Python的內(nèi)置模塊,或者numpy來實現(xiàn),這里不說了。
文本、加密類
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 隨機字符串
print(fake.pystr()) # nyfOoBhwiCAYECiKOULE
# 2. 隨機字母
print(fake.random_element()) # c
# 3. 隨機字母
print(fake.random_letter()) # A
# 4. 隨機生成一個段落
print(fake.paragraph()) # 產(chǎn)品特別為了文章.研究不同評論就是還是工程.
# 5. 隨機生成多個段落
print(fake.paragraphs())
"""
['一下手機希望責(zé)任.合作空間聯(lián)系最大.',
'用戶免費中心部分就是如何男人.次數(shù)美國自己影響程序服務(wù).你的類別歡迎日本是一.',
'數(shù)據(jù)情況工作一起發(fā)展應(yīng)該自己.發(fā)展資源內(nèi)容.']
"""
# 6. 隨機生成一句話
print(fake.sentence()) # 更新法律學(xué)生應(yīng)用.
# 7. 隨機生成多句話,與段落類似
print(fake.sentences()) # ['服務(wù)不過而且對于美國今天價格.', '發(fā)布全國語言帖子.', '產(chǎn)品關(guān)系問題產(chǎn)品.']
# 8. 隨機生成一篇文章
print(fake.text())
"""
這是價格方法閱讀.發(fā)布對于經(jīng)濟地區(qū)開發(fā)相關(guān)你們合作.
一些更新個人學(xué)生重要.什么威望網(wǎng)絡(luò)影響.
市場這些環(huán)境閱讀那個類別.軟件男人怎么等級狀態(tài)日本您的.
您的閱讀地方論壇.廣告幫助位置企業(yè).以下應(yīng)用運行主要當(dāng)前只是.
簡介只要來自如果科技.那么文化進入公司電話.
名稱威望游戲報告最新日期論壇.最大為了如何提高大學(xué).還是文件因為喜歡語言.的是以及資料是否現(xiàn)在兩個.
"""
# 9. 隨機生成詞語
print(fake.word()) # 過程
# 10. 隨機生成多個詞語,用法與段落,句子,類似
print(fake.words()) # ['任何', '參加', '正在']
# 11. 隨機生成二進制編碼
print(fake.binary()) # 非常長, 不打印了
# 12. 隨機生成兩位語言編碼
print(fake.language_code()) # ks
# 13. 隨機生成語言/國際 信息
print(fake.locale()) # shs_CA
# 14. 隨機生成MD5
print(fake.md5()) # 0df0396328281f32b1922cd82016580d
# 15. 隨機生成密碼,可選參數(shù):
# length:密碼長度;special_chars:是否能使用特殊字符;digits:是否包含數(shù)字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母
print(fake.password()) # C^!5fIk!s8
# 16. 隨機SHA1
print(fake.sha1()) # e7d9fa4f3e9a25e5ab44d88971e4c56ef4cc446f
# 17. 隨機SHA256
print(fake.sha256()) # 47f9163f2a72edc855ef25289c2cfcd4c213842607b4b936c12a43b477c8ed77
# 18. 隨機UUID
print(fake.uuid4()) # 45dc0754-b3e3-4c94-bdcb-d20a3a8f4d9d
時間信息類
意義也不大,有興趣可以自己了解一下。
小結(jié)
個人覺得,faker這個庫最有用的就是生成名字和地址了,其實雖然可以生成很多信息,但是常用的只有幾個,需要使用的時候直接查就可以了。
以上就是python用faker庫批量生成假數(shù)據(jù)的詳細內(nèi)容,更多關(guān)于python faker庫生成假數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
您可能感興趣的文章:- python基于opencv批量生成驗證碼的示例
- python批量生成身份證號到Excel的兩種方法實例
- 如何使用python-opencv批量生成帶噪點噪線的數(shù)字驗證碼
- Python如何批量生成和調(diào)用變量
- python利用faker庫批量生成測試數(shù)據(jù)
- python批量生成條形碼的示例
- Python操作Word批量生成合同的實現(xiàn)示例
- 利用Python腳本批量生成SQL語句
- 基于Python批量生成指定尺寸縮略圖代碼實例
- Python3批量生成帶logo的二維碼方法
- Python批量生成幻影坦克圖片實例代碼
- 利用Python批量生成任意尺寸的圖片
- python批量生成本地ip地址的方法
- 教你使用Python根據(jù)模板批量生成docx文檔