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()