Python中神奇的第三方庫:Faker
來自:CSDN,作者:南枝向暖北枝寒MA ?
鏈接:https://blog.csdn.net/mall_lucy/article/details/108655317
【導讀】:開發(fā)項目的時,為了測試常需要造假數(shù)據(jù),經(jīng)常要盡量的模擬真實環(huán)境,通常要費大量手工而且造出來的數(shù)據(jù),而且通常手工造出來的看起來也很別扭,費時又費事,有沒有更好的辦法?有,這里給大家介紹一個“專業(yè)造數(shù)“庫Faker,滿足你對模擬數(shù)據(jù)的所有需求。
--- 以下是正文 ---
項目開發(fā)初期,為了測試方便,我們總要造不少假數(shù)據(jù)到系統(tǒng)中,盡量模擬真實環(huán)境。比如要創(chuàng)建一批用戶名,創(chuàng)建一段文本,電話號碼,街道地址、IP地址等等。平時我們基本是鍵盤一頓亂敲,隨便造個什么字符串出來,當然誰也不認識誰。現(xiàn)在你不要這樣做了,用Faker就能滿足你的一切需求。
1、安裝
pip?install?Faker
2、簡單使用
>>> from faker import Faker>>> fake = Faker(locale='zh_CN')>>> fake.name()'李潔'>>> fake.address()'上海市興安盟縣江北東莞路r座?803484'
參數(shù) locale:為生成數(shù)據(jù)的文化選項(語種),默認為 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():區(qū)geo_coordinate():地理坐標latitude():地理坐標(緯度)longitude():地理坐標(經(jīng)度)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 網(wǎng)絡基礎信息類
domain_name():生成域名domain_word():域詞(即,不包含后綴)ipv4():隨機IP4地址ipv6():隨機IP6地址mac_address():隨機MAC地址tld():網(wǎng)址域名后綴(.com,.net.cn,等等,不包括.)uri():隨機URI地址uri_extension():網(wǎng)址文件后綴uri_page():網(wǎng)址文件(不包含后綴)uri_path():網(wǎng)址文件路徑(不包含文件名)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 數(shù)字信息
numerify():三位隨機數(shù)字random_digit():0~9隨機數(shù)random_digit_not_null():1~9的隨機數(shù)random_int():隨機數(shù)字,默認0~9999,可以通過設置min,max來設置random_number():隨機數(shù)字,參數(shù)digits設置生成的數(shù)字位數(shù)pyfloat():隨機Float數(shù)字pyint():隨機Int數(shù)字(參考random_int()參數(shù))pydecimal():隨機Decimal數(shù)字(參考pyfloat參數(shù))
3.7 文本加密類
pystr():隨機字符串random_element():隨機字母random_letter():隨機字母paragraph():隨機生成一個段落paragraphs():隨機生成多個段落sentence():隨機生成一句話sentences():隨機生成多句話,與段落類似text():隨機生成一篇文章word():隨機生成詞語words():隨機生成多個詞語,用法與段落,句子,類似binary():隨機生成二進制編碼boolean():True/Falselanguage_code():隨機生成兩位語言編碼locale():隨機生成語言/國際 信息md5():隨機生成MD5null_boolean():NULL/True/Falsepassword():隨機生成密碼,可選參數(shù):length:密碼長度;special_chars:是否能使用特殊字符;digits:是否包含數(shù)字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母sha1():隨機SHA1sha256():隨機SHA256uuid4():隨機UUID
4、實戰(zhàn)使用
在數(shù)據(jù)庫建一張表,通過Faker造數(shù)據(jù),插入到表中。并且打印Faker造的數(shù)據(jù)。
import pymysqlfrom faker import Fakerconn = 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())print('姓名:'+fake.name() + '|密碼:'+fake.password(special_chars=False) + '|地址:'+fake.address())cursor.execute(sql)conn.commit()cursor.close()conn.close()
輸出的結果如下:
姓名:王平|密碼:iZqPxLO947|地址:吉林省莉市房山楊路R座 491718姓名:柏倩|密碼:h853B0idne|地址:遼寧省玉華縣薊州永安街g座 205585姓名:賈俊|密碼:UsRtGXAv9o|地址:湖北省石家莊市大興傅街c座 861094姓名:梁丹|密碼:ke7QZBdBC3|地址:湖南省太原市璧山太原街m座 939225姓名:丁燕|密碼:Ee9Gt9Jh5E|地址:云南省穎縣海港梁街A座 403237姓名:余敏|密碼:d2KhMqlen0|地址:江西省晶市城北深圳路E座 683731姓名:朱冬梅|密碼:aGpEzKJZ2a|地址:臺灣省建市淄川張家港路F座 443320姓名:韋小紅|密碼:ZDZXzsWiJ1|地址:河北省桂榮市朝陽賀街R座 559885姓名:藍艷|密碼:tvDugIUra3|地址:湖北省西寧市和平李路n座 365745姓名:黎雪|密碼:Is1U1UAu57|地址:香港特別行政區(qū)六盤水市六枝特洪街e座 507272姓名:劉利|密碼:8zzbAEowYA|地址:遼寧省巢湖縣西夏臺北街k座 665328姓名:董波|密碼:q9TGizssrV|地址:臺灣省桂芝市長壽大冶路v座 842339姓名:劉志強|密碼:Za9Vzdocki|地址:湖南省梅市門頭溝梧州街r座 897061姓名:涂飛|密碼:9JFvmsO0r2|地址:遼寧省金鳳市海港曾路z座 577420姓名:仲秀英|密碼:6MJXQ1w6qb|地址:貴州省淑英市朝陽蔡路r座 880809姓名:趙冬梅|密碼:7oUoUrw22Z|地址:湖北省斌市黃浦阜新路f座 635086姓名:張麗麗|密碼:5DnZJhfnnB|地址:香港特別行政區(qū)秀芳縣高坪李路b座 543520姓名:徐燕|密碼:6WbRXyiY2R|地址:河北省惠州市錫山南寧路T座 266905姓名:衛(wèi)帥|密碼:0XqEZPbiGZ|地址:貴州省福州縣潯陽孫路L座 535933姓名:李桂英|密碼:6hLMsaqSI1|地址:重慶市遼陽市華龍姬街k座 718930

