ホームページ >バックエンド開発 >Python チュートリアル >Python でファイルを開くときに「os.listdir」によって「FileNotFoundError」が発生するのはなぜですか?

Python でファイルを開くときに「os.listdir」によって「FileNotFoundError」が発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 09:02:10455ブラウズ

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 は、ファイルが存在します。これは、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。