Heim > Backend-Entwicklung > Python-Tutorial > Warum verursacht „os.listdir()' beim Öffnen von Dateien „FileNotFoundError' in Python?

Warum verursacht „os.listdir()' beim Öffnen von Dateien „FileNotFoundError' in Python?

DDD
Freigeben: 2024-12-07 14:22:13
Original
556 Leute haben es durchsucht

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

Fehler „Datei nicht gefunden“ in Python bei Verwendung von os.listdir

Das Durchlaufen von Dateien in einem Verzeichnis mit os.listdir() kann einen Fehler auslösen FileNotFoundError, auch wenn die Datei vorhanden ist. Dieser Fehler tritt auf, weil os.listdir() nur den Dateinamen und nicht den vollständigen Pfad zurückgibt.

Beachten Sie den folgenden Code:

import os

path = r'E:/somedir'

for filename in os.listdir(path):
    f = open(filename, 'r')
Nach dem Login kopieren

Bei der Ausführung würde dieser Code einen FileNotFoundError für generieren Datei 'foo.txt', obwohl sie im angegebenen Verzeichnis vorhanden ist.

Das Problem liegt darin os.listdir() gibt nur den Teil des Dateinamens zurück, beispielsweise „foo.txt“. Die Funktion open() erfordert jedoch den vollständigen Pfad zur Datei, einschließlich des Verzeichnispfads, z. B. „E:/somedir/foo.txt“.

Um dieses Problem zu beheben, verwenden Sie os.path.join( ) kann verwendet werden, um den Verzeichnispfad dem Dateinamen voranzustellen:

path = r'E:/somedir'

for filename in os.listdir(path):
    with open(os.path.join(path, filename)) as f:
        # process the file
Nach dem Login kopieren

Der with-Block kann auch verwendet werden, um die Datei automatisch zu schließen.

Das obige ist der detaillierte Inhalt vonWarum verursacht „os.listdir()' beim Öffnen von Dateien „FileNotFoundError' in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage