首頁 >後端開發 >Python教學 >為什麼在Python中開啟檔案時`os.listdir`會導致`FileNotFoundError`?

為什麼在Python中開啟檔案時`os.listdir`會導致`FileNotFoundError`?

Susan Sarandon
Susan Sarandon原創
2024-11-30 09:02:10454瀏覽

Why Does `os.listdir` Cause `FileNotFoundError` When Opening Files in Python?

了解使用os.listdir 並開啟時的FileNotFoundError 異常

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn