我有一個文本文件,包含幾百個文本文件,我想打開它,寫入/剪切文件並保存爲新名稱。從python中的文件路徑列表加載文件
我一直在谷歌搜索如何做到這一點,發現模塊glob,但我無法弄清楚如何使用它。
你們可以指點我正確的方向嗎?
我有一個文本文件,包含幾百個文本文件,我想打開它,寫入/剪切文件並保存爲新名稱。從python中的文件路徑列表加載文件
我一直在谷歌搜索如何做到這一點,發現模塊glob,但我無法弄清楚如何使用它。
你們可以指點我正確的方向嗎?
如果你有特定的文件路徑,你將不需要glob模塊。當你想使用像/user/home/someone/pictures/*.jpg
這樣的路徑時,glob模塊很有用。從我的理解你有一個正常路徑的文件。
您可以使用此代碼作爲開始:
with open('file_with_paths', 'r') as paths_list:
for file_path in paths_list:
with open(file_path, 'r') as file:
# Do what you want with one of the files here.
這很好,很清楚!謝謝!但由於原因python不能找到這些文件:'沒有這樣的文件或目錄'。當第一個文件(P10088)位於我的工作目錄中時,你認爲這些文件路徑的格式是否正確? P10088/10088-01-07-02/pca/SE1_5a0e110-5a0e6a1.evt – user90465
這一切都取決於你當前的工作目錄。如果'file_with_paths'中的路徑與您運行python script.py的目錄相關,那麼它應該是正確的。你可以用'os.getcwd()'檢查你當前的工作目錄,你可以用'os.chdir()'來改變它。檢查這些目錄是否符合你的期望。 – Maciek
如果給定文件的非絕對路徑,「open」函數會嘗試通過將os.getcwd()的結果與作爲參數給出的結果相結合來打開文件。這就是爲什麼確保'os.getcwd()+'/'+ file_path'有意義的原因。 – Maciek
您只需通過遍歷行的文件行,然後拿出你從這個名字所希望的。稍後保存/創建它。下面的示例代碼可以幫助
with open('file_name') as f:
for file_path in f:
import os
file_name = os.path.basename(file_path)
absolute path = os.path.dirname(file_path)
# change whatever you want to with above two and save the file
# os.makedirs to create directry
# os.open() in write mode to create the file
讓我知道,如果它可以幫助你
謝謝!你可能會更多地瞭解它嗎?對我來說,什麼是什麼,以及如何遍歷文件並改變它們並不是很明顯。 – user90465
試一下:https://docs.python.org/2/library/glob.html –
感謝。當然,我看到了這個頁面,但是對於我來說並不那麼直截了當,我可以如何使用它。 – user90465