麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 用Python來自動化處理文件

用Python來自動化處理文件

來源:千鋒教育
發布人:xqq
時間: 2023-11-07 04:19:32 1699301972

當代碼投入生產時,你需要去組織代碼的文件。讀寫、創建和運行許多代碼文件是件非常耗時的事。本文將展示如何自動化這些繁瑣的操作:

·遍歷一個目錄中的文件

·創建尚未建立的嵌套文件

·使用bashfor循環來運行一個有多個輸入端的文件

處理數據科學項目時,這些技巧為筆者節省了大量的時間。希望對你也有用!

遍歷一個目錄中的文件

如果有如下多個數據需要讀取和處理:

├──data

│├──data1.csv

│├──data2.csv

│└──data3.csv

└──main.py

可以手動地一次讀取一個文件:

importpandasaspddefprocess_data(df):

passdf=pd.read_csv(data1.csv)

process_data(df)df2=pd.read_csv(data2.csv)

process_data(df2)df3=pd.read_csv(data3.csv)

process_data(df3)

這是可行的,但是當有超過三個數據時,效率就會變得很低。如果上述腳本中唯一改變的是數據,為什么不用for循環來訪問每個數據呢?

下面的腳本允許我們遍歷指定目錄中的文件:

importos

importpandasaspd

defloop_directory(directory:str):

'''Loopfilesinthedirectory'''

forfilenameinos.listdir(directory):

iffilename.endswith(".csv"):

file_directory=os.path.join(directory,filename)

print(file_directory)

pd.read_csv(file_directory)

if__name__=='__main__':

loop_directory('data/')

data/data3.csv

data/data2.csv

data/data1.csv

對上面腳本的解釋如下:

·forfilenameinos.listdir(directory):在一個指定的目錄中遍歷文件。

·iffilename.endswith(".csv"):運行(訪問?)以‘.csv’結尾的文件。

·file_directory=os.path.join(directory,filename):連接父目錄('data')和該目錄中的文件。

現在就可以在‘data’目錄中訪問所有的文件啦!

如果不存在,就創建嵌套文件

有時你可能想要通過創建嵌套文件來管理代碼或模型,在之后更容易地尋找。比如,可以運用‘model1’來明確規定一個有著具體特征的程序。當使用model1時,你可能想要嘗試運用不同種類的機器學習模型來訓練數據(‘model1/XGBoost’)。

在使用各個機器學習模型時,我們甚至想要去保存不同樣式的模型,因為它們所運用的超參數存在不同。因此,模型目錄就像下面的示例一樣復雜:

model

├──model1

│├──NaiveBayes

│└──XGBoost

│├──version_1

│└──version_2

└──model2

├──NaiveBayes

└──XGBoost

├──version_1

└──version_2

對每個所創的模型手動地建立嵌套文件可能需要花費很長的時間。有沒有能夠自動化這個進程的方法?有,通過使用os.makedirs(datapath)。

defcreate_path_if_not_exists(datapath):

'''Createthenewfileifnotexistsandsavethedata'''

ifnotos.path.exists(datapath):

os.makedirs(datapath)

if__name__=='__main__':

create_path_if_not_exists('model/model1/XGBoost/version_1')

運行上面的文件,可以看到嵌套文件‘model/model2/XGBoost/version_2’自動建成了。現在便可以將模型或者數據儲存到新的目錄里了!

importjoblib

importos

defcreate_path_if_not_exists(datapath):

'''Createthenewfileifnotexistsandsavethedata'''

ifnotos.path.exists(datapath):

os.makedirs(datapath)

if__name__=='__main__':

#Createdirectory

model_path='model/model2/XGBoost/version_2'

create_path_if_not_exists(model_path)

#Savefile

joblib.dump(model,model_path)

Bashfor循環:用不同參數運行一個文件

如果要運行一個具有不同參數的文件怎么辦呢?比如,可能要用同一個腳本去預測使用不同模型的數據。

importjoblib

#df=...

model_path='model/model1/XGBoost/version_1'

model=joblib.load(model_path)

model.predict(df)

如果一個腳本需要長時間來運行且有著多個要運行的模型,用腳本一個一個地運行會是非常耗時。有什么辦法能讓電腦獨立自動地用一條命令行運行第1,2,3...,10個模型嗎?

有的,可以使用bashfor循環。首先,使用sys.argv來解析命令行參數。如果想要在命令行上重寫配置文件可以使用類如hydra的工具。

importsys

importjoblib

#df=...

model_type=sys.argv[1]

model_version=sys.argv[2]

model_path=f'''model/model1/{model_type}/version_{model_version}'''

print('Loadingmodelfrom',model_path,'fortraining')

model=joblib.load(model_path)

mode.predict(df)

>>>pythontrain.pyXGBoost1

Loadingmodelfrommodel/model1/XGBoost/version_1fortraining

腳本已經被指令為使用模具第一版的XGBoost來預測命令行上的數據。現在便能在不同版本的模具中使用bashfor循環。如果能用Python使用for循環,也可以在如下的終端上達成上述的目標。

$forversionin234

>do

>pythontrain.pyXGBoost$version

>done

敲擊Enter來分隔各行,輸出:

Loadingmodelfrommodel/model1/XGBoost/version_1fortraining

Loadingmodelfrommodel/model1/XGBoost/version_2fortraining

Loadingmodelfrommodel/model1/XGBoost/version_3fortraining

Loadingmodelfrommodel/model1/XGBoost/version_4fortraining

現在便可以讓腳本使用不同的模具來運行啦!

恭喜!現在你已經學會如何一次自動地讀取和創造多個文件,如何用不同的參數運行一個文檔,過去丟在瑣碎工作中的時間可以利用起來做更重要的任務啦。

以上內容為大家介紹了用Python來自動化處理文件,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.dietsnews.net/

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 欧美性猛交xxxx乱大交蜜桃| 99麻豆视频| 伊人丁香狠狠色综合久久| 八戒网站免费观看视频| 正在播放宾馆露脸对白视频| 九九久久99综合一区二区| 免费一级毛片在线播放不收费| 午夜精品一区二区三区在线观看| 成年女人色毛片| 三上悠亚电影在线观看| 最近高清中文字幕在线国语5| 欧美精品亚洲精品日韩专区va| 2019国产开嫩苞视频| 动漫美女羞羞网站| 动漫洗濯屋| 波多野结衣一区在线| 免费在线一区| 国产自在线观看| 韩国伦理电影年轻的妈妈| 男人把女人桶爽30分钟一| 国产黄大片在线观看| 一本一本久久a久久精品综合| 国产麻豆久久| 亚洲欧洲高清| 2018中文字幕第一页| 亚洲精品国产综合久久一线| 中文字幕伊人| 日韩不卡在线播放| 四虎在线免费播放| 亚洲人成7777影视在线观看| 宅男噜噜噜66网站| 最近中文字幕免费4| 嫩草影院免费观看| 一嫁三夫电影免费观看| 护士在办公室里被躁视频| 两个小姨子韩国| 热99re久久免费视精品频软件| 一线在线观看全集免费高清中文| aaaaaa级特色特黄的毛片| 黑人巨鞭大战洋妞| 欧美日韩高清完整版在线观看免费 |