Faker
,它解決的問題是python
模擬(隨機)數據!不知道大家在工作中沒有用到過假數據,特別前后端開發的人員,應該經常用到,前端人員頁面展示,效果展示。后端人員數據庫數據模擬。今天給大家介紹的這個項目完美的解決了這個方案,可以模擬多種語言的數據,中文,英文,日語,韓語等等。有興趣的小伙伴可以下載嘗試一下。
安裝:
pip install Faker
基本用法
使用faker.Faker()初始化,可通過訪問你想要的數據類型來命名的屬性生成你要的數據。
from faker import Faker fake = Faker() fake.name() # 'Lucy Cechtelar' fake.address() # '426 Jordy Lodge # Cartwrightshire, SC 88120-6700' fake.text() # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt # amet quidem. Iusto deleniti cum autem ad quia aperiam. # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur # voluptatem sit aliquam. Dolores voluptatum est. # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est. # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati. # Et sint et. Ut ducimus quod nemo ab voluptatum.'
每次對方法的調用都會fake.name()產生不同的(隨機)結果。這是因為造假者將faker.Generator.method_name()呼叫轉發給faker.Generator.format(method_name)。
from faker import Faker fake = Faker("zh-CN") fake.name() # '張柳' fake.address() # '黑龍江省遼陽縣江北李路C座 461467' fake.text() # '繼續瀏覽音樂行業國內什么.任何同時專業但是人民而且無法.認為大家的是更新. 數據設備日本更多.生活發表一般最大一下.狀態得到游戲今天喜歡. 專業無法工作這么文化如此感覺教育.工程全部詳細注意.現在增加女人一些日本覺得不過. 感覺原因全部感覺表示.質量所以管理但是因此.圖片都是一種注冊表示主要汽車影響. 質量喜歡有關希望更多.已經那個更多決定運行. 系列名稱完全研究女人沒有企業.'
可以自定義不同的語言,也可以輸出多種語言,這里我們就展示中英文,有興趣的可以去查看官方文檔。
生成IP地址
from faker import Faker from faker.providers import internet fake = Faker() fake.add_provider(internet) print(fake.ipv4_private()) # '192.168.91.234'
隨機生成IP地址,每次產生不同的(隨機)結果。
命令行用法
faker [-h] [--version] [-o output] [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}] [-r REPEAT] [-s SEP] [-i {package.containing.custom_provider otherpkg.containing.custom_provider}] [fake] [fake argument [fake argument ...]]
Where:
faker
: is the script when installed in your environment, in development you could usepython -m faker
instead-h, --help
: 顯示幫助文檔--version
: 顯示版本信息-o FILENAME
: 將輸出重定向到指定的文件名中。-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}
: 允許自定義語言,一種或多種語言。-r REPEAT
: 指定輸出的數量-s SEP
: 每次生成輸出后,會生成指定的字符-i {my.custom_provider other.custom_provider}
list of additional custom providers to use. Note that is the import path of the package containing your Provider class, not the custom Provider class itself.fake
: 用於生成輸出(例如名稱、地址或文本)的偽名稱[fake argument ...]
: 傳遞給fake的可選參數
$ faker address 968 Bahringer Garden Apt. 722 Kristinaland, NJ 09890 $ faker -l de_DE address Samira-Niemeier-Allee 56 94812 Biedenkopf $ faker profile ssn,birthdate {'ssn': u'628-10-1085', 'birthdate': '2008-03-29'} $ faker -r=3 -s=";" name Willam Kertzmann; Josiah Maggio; Gayla Schmitt;
自定義數據
如果不想使用默認數據,可以提供自己的單詞集。
fake = Faker() my_word_list = [ 'danish','cheesecake','sugar', 'Lollipop','wafer','Gummies', 'sesame','Jelly','beans', 'pie','bar','Ice','oat' ] fake.sentence() # 'Expedita at beatae voluptatibus nulla omnis.' fake.sentence(ext_word_list=my_word_list) # 'Oat beans oat Lollipop bar cheesecake.'
常用方法:
from faker import Faker from faker.providers import internet fake = Faker("zh-CN") # 產生隨機手機號 print(fake.phone_number()) # 產生隨機姓名 print(fake.name()) # 產生隨機地址 print(fake.address()) # 隨機產生國家名 print(fake.country()) # 隨機產生國家代碼 print(fake.country_code()) # 隨機產生城市名 print(fake.city_name()) # 隨機產生城市 print(fake.city()) # 隨機產生省份 print(fake.province()) # 產生隨機email print(fake.email()) # 產生隨機IPV4地址 print(fake.ipv4()) # 產生長度在最大值與最小值之間的隨機字符串 print(fake.pystr(min_chars=0, max_chars=8)) # 隨機產生車牌號 print(fake.license_plate()) # 隨機產生顏色 print(fake.rgb_color()) # rgb print(fake.safe_hex_color()) # 16進制 print(fake.color_name()) # 顏色名字 print(fake.hex_color()) # 16進制 # 隨機產生公司名 print(fake.company()) # 隨機產生工作崗位 print(fake.job()) # 隨機生成密碼 print(fake.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True)) # 隨機生成uuid print(fake.uuid4()) # 隨機生成sha1 print(fake.sha1(raw_output=False)) # 隨機生成md5 print(fake.md5(raw_output=False)) # 隨機生成女性名字 print(fake.name_female()) # 男性名字 print(fake.name_male()) # 隨機生成名字 print(fake.name()) # 生成基本信息 print(fake.profile(fields=None, sex=None)) print(fake.simple_profile(sex=None)) # 隨機生成瀏覽器頭user_agent print(fake.user_agent()) # 隨機產生時間 月份 print(fake.month_name()) # 'May' print(fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None)) # 2005-10-08 08:32:02 print(fake.time_object(end_datetime=None)) # 06:45:11 print(fake.date_time_between(start_date="-10y", end_date="now", tzinfo=None)) # 2012-08-25 03:07:38 print(fake.future_date(end_date="+30d", tzinfo=None)) # 2020-04-25 print(fake.date_time(tzinfo=None, end_datetime=None)) # 2002-09-01 18:27:45 print(fake.date(pattern="%Y-%m-%d", end_datetime=None)) # '1998-08-02' print(fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None)) # 2020-04-03 16:03:21 print(fake.timezone()) # 'Africa/Addis_Ababa' print(fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)) # 2020-01-09 01:15:08 print(fake.month()) # '04' print(fake.day_of_week()) # 'Sunday' print(fake.iso8601(tzinfo=None, end_datetime=None)) # '1988-02-28T09:22:29' print(fake.date_object(end_datetime=None)) # 2017-06-26 print(fake.date_this_decade(before_today=True, after_today=False)) # 2020-03-30 fake.date_this_century(before_today=True, after_today=False) # datetime.date(2000, 6, 1) fake.date_this_month(before_today=True, after_today=False) # datetime.date(2018, 6, 13) fake.am_pm() # 'AM' fake.past_datetime(start_date="-30d", tzinfo=None) # datetime.datetime(2018, 6, 25, 7, 41, 34) fake.date_this_year(before_today=True, after_today=False) # datetime.date(2018, 2, 24) fake.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None) # datetime.datetime(2018, 6, 26, 14, 40, 5) fake.date_time_ad(tzinfo=None, end_datetime=None) # datetime.datetime(673, 1, 28, 18, 17, 55) fake.date_between_dates(date_start=None, date_end=None) # datetime.date(2018, 6, 26) fake.future_datetime(end_date="+30d", tzinfo=None) # datetime.datetime(2018, 7, 4, 10, 53, 6) fake.century() # 'IX' fake.past_date(start_date="-30d", tzinfo=None) # datetime.date(2018, 5, 30) fake.time(pattern="%H:%M:%S", end_datetime=None) # '01:32:14' fake.day_of_month() # '19' fake.unix_time(end_datetime=None, start_datetime=None) fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None) # datetime.datetime(2018, 5, 24, 11, 25, 25) fake.date_between(start_date="-30y", end_date="today") # datetime.date(2003, 1, 11) fake.year() # '1993' fake.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None) # <generator object time_series at 0x7f44e702a620> # 隨機產生文件 fake.file_extension(category=None) # 'xls' print(fake.file_name(category=None, extension=None)) # 那么.mov fake.file_path(depth=1, category=None, extension=None) # '/教育/客戶.js' fake.unix_device(prefix=None) # '/dev/sdf' print(fake.unix_partition(prefix=None)) # '/dev/vdv4' print(fake.mime_type(category=None)) # 'message/imdn+xml'
開源地址: https://github.com/joke2k/fakerv
項目文檔:https://faker.readthedocs.io/en/master/