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')
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
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!