1. 程式人生 > 實用技巧 >Faker開源庫構造測試資料

Faker開源庫構造測試資料

參考文章:https://mp.weixin.qq.com/s/__Z7NDQ3Haj4ClEPc9SPDQ

一、基本使用

專案地址:https://github.com/joke2k/faker

安裝:pip install Faker

下面是構造隨機資料並儲存到excel的示例程式碼:

import time

from faker import Faker
import xlwt
import pandas as pd

fake = Faker(locale='zh_CN')

def save_to_excel():
    start_time = time.time()
    work_book 
= xlwt.Workbook(encoding='utf-8') work_sheet = work_book.add_sheet('構造的資料') #新增表頭 head = ['姓名','手機號','地址'] for h in range(len(head)): work_sheet.write(0,h,head[h]) #新增構造的資料 for i in range(60000): name = fake.name() phone = fake.phone_number() address
= fake.address() work_sheet.write(i+1,0,name) work_sheet.write(i+1,1,phone) work_sheet.write(i+1,2,address) work_book.save('構造資料3.xls') end_time = time.time() print('總共耗時:',end_time-start_time) def save_to_excel2(file_path,n): start_time = time.time() res
= [] for i in range(n): res.append([fake.name(),fake.phone_number(),fake.address()]) #list轉dataFrame df = pd.DataFrame(data=res,columns=['姓名','手機號','地址']) #儲存到本地excel df.to_excel(file_path,index=False) end_time = time.time() print('總共耗時:',end_time-start_time) if __name__ == '__main__': save_to_excel() # save_to_excel2('構造資料2.xls',60000)
View Code

二、支援的常見資料型別:

1、地理資訊類

  • fake.city_suffix():市,縣
  • fake.country():國家
  • fake.country_code():國家編碼
  • fake.district():區
  • fake.geo_coordinate():地理座標
  • fake.latitude():地理座標(緯度)
  • fake.longitude():地理座標(經度)
  • fake.postcode():郵編
  • fake.province():省份
  • fake.address():詳細地址
  • fake.street_address():街道地址
  • fake.street_name():街道名
  • fake.street_suffix():街、路

2、基礎資訊類

  • ssn():生成身份證號
  • bs():隨機公司服務名
  • company():隨機公司名(長)
  • company_prefix():隨機公司名(短)
  • company_suffix():公司性質
  • credit_card_expire():隨機信用卡到期日
  • credit_card_full():生成完整信用卡資訊
  • credit_card_number():信用卡號
  • credit_card_provider():信用卡型別
  • credit_card_security_code():信用卡安全碼
  • job():隨機職位
  • first_name_female():女性名
  • first_name_male():男性名
  • last_name_female():女姓
  • last_name_male():男姓
  • name():隨機生成全名
  • name_female():男性全名
  • name_male():女性全名
  • phone_number():隨機生成手機號
  • phonenumber_prefix():隨機生成手機號段

3、計算機基礎、Internet資訊類

  • ascii_company_email():隨機ASCII公司郵箱名
  • ascii_email():隨機ASCII郵箱:
  • company_email():
  • email():
  • safe_email():安全郵箱

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地址

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資訊

6、數字類

  • numerify():三位隨機數字

  • random_digit():0~9隨機數

  • random_digit_not_null():1~9的隨機數

  • random_int():隨機數字,預設0~9999,可以通過設定min,max來設定

  • random_number():隨機數字,引數digits設定生成的數字位數

  • pyfloat():

    left_digits=5 #生成的整數位數, right_digits=2 #生成的小數位數, positive=True #是否只有正數

  • pyint():隨機Int數字(參考random_int()引數)

  • pydecimal():隨機Decimal數字(參考pyfloat引數)

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

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():隨機年份

9、python 相關方法

  • profile():隨機生成檔案資訊

  • simple_profile():隨機生成簡單檔案資訊

  • pyiterable()

  • pylist()

  • pyset()

  • pystruct()

  • pytuple()

  • pydict()