利用 Python Faker 包來製作假資料

2022-08-14 13:03:13 字數 2419 閱讀 3565

在做程式開發的時候,我們經常會用到一些測試資料,相信大多數同學是這麼來造測試資料的:12

3456

78test1

test01

test02

測試1測試2

測試資料1

這是一段測試文字

這是一段很長很長很長的測試文字...

中槍的請舉手。

不僅要自己手動敲這些測試資料,還敲的這麼假。那有啥辦法呢?難不成有什麼東西能自動給我造點以假亂真的資料啊?你別說,還真有!

在 python 中有個神庫,叫做 faker,它可以自動幫我們來生成各種各樣的看起來很真的」假「資料,讓我們來看看吧!

首先讓我們來看看這個庫的安裝方法,實際上裝起來非常簡單,使用 pip 安裝即可,python3 版本的安裝命令如下:

1pip3 install faker

安裝好了之後,我們使用最簡單的例子來生成幾個假資料試試:12

3456

from faker import faker

faker=faker()

print('name:',faker.name())

print('address:',faker.address())

print('text:',faker.text())

首先我們從 faker 這個包裡面匯入乙個 faker 類,然後將其實例化為 faker 物件,依次呼叫它的 name、address、text 方法,看下執行效果:12

3456

name:nicholas wilson

address:70561simmons road apt.893

lake raymondville,hi35240

text:both begin bring federal space.

official start idea specific.able under young fire.

who show line traditional easy people.until economic lead event case.technology college his director style.

看到這裡給我們生成了看起來很真的英文姓名、位址、長文字。

但我們是中國人,我們肯定想要生成中文的吧,不用擔心,這個庫對非常多的語言都有支援,當然也包括中文了,具體的支援的語言列表可以見:

這裡幾個比較常見的語言代號列一下:

那麼如果要生成中文,只需要在 faker 類的第乙個引數傳入對應的語言代號即可,例如簡體中文就傳入 zh_cn,所以上面的**改寫如下:12

3456

from faker import faker

faker=faker('zh_cn')

print('name:',faker.name())

print('address:',faker.address())

print('text:',faker.text())

執行結果如下:12

3456

7name:何琳

address:寧夏回族自治區六盤水縣南溪北鎮街f座912311

文化目前東西的是不過所以.系統覺得這種為什一下他們.時候以及這樣繼續是一狀態威望.

**密碼情況.問題一點那個還是.其實過程詳細.

中國歷史環境**規定.經驗上海控制不要生活.朋友執行專案我們.

以後今天那些使用免費國家加入但是.內容簡介空間次數最大乙個.日期通過得到日本北京.

上面的**每次執行得到的結果都是不同的,因為生成的結果都是隨機組合而成的。

接下來讓我們詳細看下 faker 可以都生成什麼型別的資料,具體的可用 api 可以看 這裡面列出來了可用的所有方法。

但開啟之後可以發現,這裡面多了乙個 provider 物件,那麼這個 provider 是怎麼一回事呢?

實際上這個 faker 庫在設計上,為了解耦,將 provider 物件做成了 faker 物件的」外掛程式「。faker 可以新增乙個個 provider 物件,provider 物件為 faker 物件提供了生成某項資料的核心實現。就相當於 faker 物件是乙個生成器,它的生成功能依賴於什麼呢?依賴於 provider,是 provider 提供給了 faker 物件生成某項資料的能力。

正是因為 faker 物件內建了一些 provider 物件,faker 物件才可以生成剛才所要求的姓名、位址和文字。

那麼這時候我們肯定就很好奇了,既然 faker 物件有生成資料的能力,那麼它一定內建了一些預設的 provider 物件,下面我們來列印看一下:12

34from faker import faker

faker=faker('zh_cn')

print(faker.providers)

執行結果如下:

1[,,,,,,,,,,,,,

oracle利用utl file包來讀寫檔案

oracle利用使用utl file包 create or replace procedure loadfiledata p path varchar2,p filename varchar2 is v filehandle utl file.file type 定義乙個檔案控制代碼 v text ...

利用HandlerInteceptor來做請求驗證

小疑問 為什麼是interceptor的名字是用handler開頭的而不是httprequest?其實這是spring自己的 servlet的api裡是沒有interceptor的,功能相似的是filter,但是spring需要更強的控制能力,可以說是定製能力,filter只有interceptor...

利用android來賺錢

看了一篇fenger 大神寫的文章,受益匪淺,在此做一下記錄 這是本人半年來對android及個人開發這塊的所有總結,希望能夠對大家起到幫助。從各方面開來,android無疑是進入空前繁榮的時代,如果你想靠業餘時間來賺點錢,我覺得這無疑是一種很好的方式,比起接外包很多時候會好很多,至少這個是持續性收...