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 中国語 Web サイトの他の関連記事を参照してください。