在Python 中,當使用os.listdir 迭代目錄中的檔案時,使用者可能會遇到FileNotFoundError。這是因為 os.listdir 只傳回檔名,而不是完整路徑。
考慮以下程式碼:
import os path = r'E:/somedir' for filename in os.listdir(path): f = open(filename, 'r')
執行此程式碼時,Python 將引發 FileNotFoundError,即使檔案存在。這是因為 open 在處理檔案「foo.txt」時需要檔案的完整路徑,即「E:/somedir/foo.txt」。
要解決此問題,請使用 os.path .join 將目錄新增至檔案名稱前面:
path = r'E:/somedir' for filename in os.listdir(path): with open(os.path.join(path, filename)) as f: # process the file
此外,程式碼可以使用 with 區塊自動關閉檔案。
以上是為什麼在Python中開啟檔案時`os.listdir`會導致`FileNotFoundError`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!