我的第一個(gè)Python實(shí)用項(xiàng)目,來了!
點(diǎn)擊上方藍(lán)色字體,關(guān)注程序員zhenguo

從今天開始,與大家一起完成一些實(shí)用的小項(xiàng)目。
第一個(gè)是自動生成100個(gè)excel數(shù)據(jù)文件,下面是生成的文件和數(shù)據(jù):

班級1.xlsx內(nèi)容:

看到,生成的雖然是測試數(shù)據(jù),但是使用faker庫生成的數(shù)據(jù),看起來又那么”真實(shí)”。
項(xiàng)目環(huán)境
首先,打開pycharm,新建一個(gè)py模塊,起名為p1_auto_excel。
其次,安裝項(xiàng)目需要的第三方包,主要是faker和pandas,安裝也很簡單。
打開下面終端窗口,輸入pip install faker;等安裝完成后,再輸入pip install pandas:

若還提示找不到某個(gè)包,只需執(zhí)行同樣的命令pip install 找不到的包,就行。
逐行代碼講解
下面開始看代碼,fake這一行配置輸出的中文例子,這個(gè)大家要記住。
"""
作者:程序員zhenguo
公眾號、視頻號、抖音同名:程序員zhenguo
個(gè)人網(wǎng)站:www.zglg.work
功能:自動生成100個(gè)測試文件
"""
import?os
import?random
from?faker?import?Faker
import?pandas?as?pd
fake?=?Faker("zh_CN")
然后定義了一個(gè)函數(shù)
auto_gen_excel,
用來批量生成excel數(shù)據(jù)文件。
后面的參數(shù)file_path是文件路徑,第二個(gè)參數(shù)是生成的excel文件個(gè)數(shù),默認(rèn)是100個(gè)excel。
def?auto_gen_excel(file_path,?file_n=100):
????if?not?os.path.exists(file_path):
????????os.mkdir(file_path)
????for?i?in?range(file_n):
????????nn?=?random.randint(3,?10)
????????names?=?[fake.name()?for?_?in?range(nn)]
????????grades?=?[random.randint(50,?100)?for?_?in?range(nn)]
????????d?=?{'姓名':?names,?'考試分?jǐn)?shù)':?grades}
????????file?=?os.path.join(file_path,?f'班級{i?+?1}.xlsx')
????????pd.DataFrame(d).to_excel(file,?index=False)
????print("Done")
下面這行代碼是判斷如果file_path路徑不存在的話,就創(chuàng)建這個(gè)路徑。
????if?not?os.path.exists(file_path):
????????os.mkdir(file_path)
????????
遍歷創(chuàng)建file_n個(gè)excel文件,循環(huán)體里,生成一個(gè)[3,10]大小的隨機(jī)數(shù),它是每個(gè)excel文件的行數(shù),nn是5,就代表有5條數(shù)據(jù)
接下來使用列表生成式,結(jié)合faker庫,依次創(chuàng)建nn個(gè)名字,nn個(gè)分?jǐn)?shù),這里的下劃線表示我們不用到這個(gè)變量,一般的習(xí)慣寫法。
names?=?[fake.name()?for?_?in?range(nn)]
grades?=?[random.randint(50,?100)?for?_?in?range(nn)]
接下來,再建立列和數(shù)據(jù)的映射,得到字典d,每個(gè)excel文件的命名規(guī)則是班級+編號,然后再和輸入的路徑file_path拼接起來,最后使用這么一行代碼,就能保存到excel文件中,pandas操縱excel起來很方便。
等遍歷完成后,打印Done。
好了,這就是我寫的一個(gè)自動創(chuàng)建100個(gè)excel測試數(shù)據(jù)的代碼,若有其他方法大家也可以留言討論,最后點(diǎn)個(gè)贊支持下吧,這樣我更有動力做好下一個(gè)。
完整視頻講解
我錄制視頻,并發(fā)布到視頻號,點(diǎn)擊觀看:
如果你喜歡在B站上學(xué)習(xí),我也在B站上同步了此視頻,點(diǎn)擊最下的閱讀原文可以看到。
