1.什么是Faker
Faker是一個Python包,開源的GITHUB項目,主要用來創建偽數據,使用Faker包,無需再手動生成或者手寫隨機數來生成數據,只需要調用Faker提供的方法,即可完成數據的生成。
2.安裝Faker
pip install faker
3.Faker的使用
引用包:
import faker
初始化:
f=faker.Faker(locale='zh_CN')
- 簡體中文:zh_CN
- 繁體中文:zh_TW
- 美國英文:en_US
- 英國英文:en_GB
- 德文:de_DE
- 日文:ja_JP
- 韓文:ko_KR
- 法文:fr_FR
- 如果需要多種語言環境混合的數據,可以使用列表,元祖或者集合指定即可,如:
locale=["zh-CN",'en_US']。
from faker import Faker
from faker.providers import internet
faker_data = Faker(locale='zh_CN')
# 模擬姓名
print(faker_data.name_female())
print(faker_data.name_male())
# 模擬身份證號碼 18-50歲
print(faker_data.ssn(min_age=18, max_age=50))
# 模擬手機號碼
print(faker_data.phone_number())
# 模擬銀行卡號
print(faker_data.credit_card_number())
# 模擬IP地址
print(faker_data.ipv4_private())
# 模擬公司名稱
print(faker_data.company())
# 模擬城市位置
print(faker_data.city())
# 模擬具體街道
print(faker_data.address())
# 模擬個人配置信息
print(faker_data.profile())
# 模擬郵政編碼
print(faker_data.postcode())
# 模擬隨機uri地址
print(faker_data.uri())
# 03
# Faker常用庫
# (1)地理信息類
# address():詳細地址, 中文環境中使用的是各種地址拼接,具體省份和區縣沒有聯動關系
# city():城市
# country():國家信息
# country_code(representation='alpha-2'):國家編碼
# postcode():郵編信息
# street_address():街道地址信息
# street_name():街道名稱
# street_suffix():街、路
# (2)個人基本信息類
# first_name():名
# first_name_female():女性名
# first_name_male():男性名
# last_name():
# name(): 隨機姓名全名
# name_female():女性名字
# name_male():男性名字
# prefix():名字稱呼,如先生
# prefix_female():女性稱呼
# prefix_male():男性稱呼
# phone_number():隨機手機號碼
# profile(fields=None, sex=None):個人配置信息,如工作、公司、身份證號等
# ssn():隨機身份證號
# bs():隨機公司服務名
# company():公司全稱
# company_suffix():公司性質
# job():工作隨機職位信息
# credit_card_expire(start='now', end='+10y', date_format='%m/%y'):銀行卡到期日期
# credit_card_full(card_type=None):銀行卡全稱信息
# credit_card_number(card_type=None):銀行卡號
# credit_card_provider(card_type=None):信用卡類型
# credit_card_security_code(card_type=None):銀行卡安全碼
# (3)網絡信息類
# ascii_company_email():隨機ASCII公司郵箱名稱
# ascii_email():隨機ASCII郵箱
# ascii_free_email():免費郵箱
# ascii_safe_email():安全郵箱
# company_email():公司郵箱
# dga(year=None, month=None, day=None, tld=None, length=None):域名
# domain_name(levels=1):
# email(domain=None):郵箱信息
# free_email():
# free_email_domain():郵箱域名
# hostname(levels=1):主機名
# http_method():http的請求方法
# image_url(width=None, height=None):圖片url地址
# ipv4(network=False, address_class=None, private=None):ip地址信息
# ipv4_network_class():ip地址分類
# ipv4_private(network=False, address_class=None):私有ip地址
# ipv4_public(network=False, address_class=None):公網ip地址
# ipv6(network=False):ipv6地址信息
# mac_address():pc的mac地址
# port_number(is_system=False, is_user=False, is_dynamic=False):端口號
# safe_domain_name():安全域名信息
# safe_email():
# uri():隨機uri地址
# uri_extension():網頁文件后綴
# uri_page():網頁文件信息
# uri_path(deep=None):網址文件路徑
# url(schemes=None):隨機url地址
# user_name(): 隨機用戶名
# (4)文件信息類
# file_extension(category=None):文件類型
# file_name(category=None, extension=None):隨機文件名字
# file_path(depth=1, category=None, extension=None):隨機文件路徑
# unix_partition(prefix=None):unix分區信息
# (5)數字類
# pybool():布爾型
# pydecimal(left_digits=None, right_digits=None, positive=False, min_value=None, max_value=None):隨機Decimal類型數字
# pydict(nb_elements=10, variable_nb_elements=True, value_types=None, *allowed_types):隨機字典類型數字
# pyfloat(left_digits=None, right_digits=None, positive=False, min_value=None, max_value=None):隨機浮點類型數字
# pyint(min_value=0, max_value=9999, step=1):隨機int類型數字
# pystr(min_chars=None, max_chars=20):隨機字符串
# pystr_format(string_format='?#-###{{random_int}}{{random_letter}}',
# letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'):隨機規定格式的字符串
# random_digit():隨機數字
# random_digit_not_null():1
# ~9
# 隨機數字
# random_int(min=0, max=9999, step=1):0
# ~999
# 的隨機數字
# random_number(digits=None, fix_len=False):
# random_uppercase_letter():隨機大寫字母
# (6)個人代理類
# android_platform_token():android版本user_agent信息
# chrome(version_from=13, version_to=63, build_from=800, build_to=899):谷歌版本user_agent信息
# firefox():火狐版本user_agent信息
# internet_explorer():ie版本user_agent信息
# ios_platform_token():ios版本信息
# linux_platform_token():linux版本信息
# linux_processor():linux版本類型
# user_agent():隨機user_agent信息
# (7)隨機字符串
# paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None):隨機生成段落
# paragraphs(nb=3, ext_word_list=None):隨機生成多個段落
# sentence(nb_words=6, variable_nb_words=True, ext_word_list=None):隨機生成一句話
# sentences(nb=3, ext_word_list=None)::隨機生成多句話
# text(max_nb_chars=200, ext_word_list=None):隨機生成一篇文章
# texts(nb_texts=3, max_nb_chars=200, ext_word_list=None)
# word(ext_word_list=None):隨機生成詞語
# words(nb=3, ext_word_list=None, unique=False):隨機生成多個詞語
# password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True):隨機密碼
# sha1(raw_output=False):隨機sha1密碼
# (8)日期時間
# am_pm():上 / 下午
# century():世紀
# date(pattern='%Y-%m-%d', end_datetime=None):日期
# date_between(start_date='-30y', end_date='today'):日期范圍
# date_between_dates(date_start=None, date_end=None):
# date_object(end_datetime=None):隨機生成1970 - 1 - 1
# 到指定日期的隨機日期
# date_of_birth(tzinfo=None, minimum_age=0, maximum_age=115):生日
# date_this_century(before_today=True, after_today=False):
# date_time(tzinfo=None, end_datetime=None):時間信息
# future_date(end_date='+30d', tzinfo=None):未來的日期
# month():月份
# month_name():月份名稱
# past_date(start_date='-30d', tzinfo=None):隨機生成已經過去的日期
# past_datetime(start_date='-30d', tzinfo=None):隨機生成已經過去的時間信息
# time(pattern='%H:%M:%S', end_datetime=None):時間信息
# time_delta(end_datetime=None):時間差
# year():年份
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():隨機 company 名(長)
company_prefix():隨機 company 名(短)
company_suffix():company 性質
credit_card_expire():隨機信用卡到期日
credit_card_full():生成完整信用卡信息
credit_card_number():信用卡 ID
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 company 郵箱名
ascii_email():隨機 ASCII 郵箱:
company_email():company 郵箱
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():隨機生成多個段落,通過參數 nb 來控制段落數,返回數組
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()
