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

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

DDD
發布: 2024-12-07 14:22:13
原創
565 人瀏覽過

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

使用os.listdir 時Python 中出現檔案未找到錯誤

使用os.listdir() 迭代目錄中的檔案可能會觸發FileNotFoundError,即使檔案存在。發生此錯誤的原因是 os.listdir() 僅傳回檔名,而不是完整路徑。

考慮以下程式碼:

import os

path = r'E:/somedir'

for filename in os.listdir(path):
    f = open(filename, 'r')
登入後複製

執行時,此程式碼將產生 FileNotFoundError檔案 'foo.txt',即使它存在於指定目錄中。

問題在於 os.listdir() 傳回僅檔案名稱部分,例如「foo.txt」。但是,open() 函數需要檔案完整的路徑,包括目錄路徑,例如 '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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板