ホームページ >バックエンド開発 >Python チュートリアル >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 サイトの他の関連記事を参照してください。