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

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

DDD
DDDオリジナル
2024-12-07 14:22:13564ブラウズ

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

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