IOError: [Errno 2] Keine Datei oder Verzeichnis, das versucht, eine Datei zu öffnen
Ich bin sehr neu in Python, also bitte verzeihen Sie die folgenden basic-code und problem, aber ich habe versucht, herauszufinden, was den Fehler verursacht, ich bin immer (ich sah sogar bei ähnlichen threads auf S. O.), kann aber nicht an meinem Problem.
Hier ist, was ich versuche zu tun:
- Schleife durch einen Ordner mit CSV-Dateien
- Suche nach einem 'keyword' und lösche alle Zeilen mit dem 'keyword'
- speichern Sie die Ausgabe an einen separaten Ordner
Hier ist mein code:
import os, fnmatch
import shutil
src_dir = "C:/temp/CSV"
target_dir = "C:/temp/output2"
keyword = "KEYWORD"
for f in os.listdir(src_dir):
os.path.join(src_dir, f)
with open(f):
for line in f:
if keyword not in line:
write(line)
shutil.copy2(os.path.join(src_dir, f), target_dir)
Hier ist die Fehlermeldung die ich erhalte:
IOError: [Errno 2] No such file or directory: 'POS_03217_20120309_153244.csv'
Ich habe bestätigt, dass der Ordner und die Datei existieren. Was verursacht die IOError
und wie ich das Problem beheben? Außerdem, gibt es etwas, was falsch mit meinem code, würde mich davon abhalten, die Durchführung der gesamten Aufgabe?
InformationsquelleAutor der Frage Keith | 2012-03-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hmm, es gibt ein paar Dinge, die hier falsch.
Bist du nicht speichern das Ergebnis der
join
. Das sollte etwas sein wie:Dieser Ausschreibung ist die Ursache für Ihr
IOError
. (Weil ohne speichern das Ergebnis derjoin
obenf
war immer noch nur " Datei.csv', nicht 'src_dir/Datei.csv'.)Auch die syntax:
ist nah, aber die syntax ist nicht ganz richtig. Es sollte
with open(file_name) as file_object:
. Dann verwenden Sie diefile_object
zu führen lese-oder Schreibvorgänge.Und schließlich:
Sagte Sie python was Sie schreiben wollte, aber nicht wo zu schreiben. Schreiben ist eine Methode, die auf das file-Objekt. Versuchen
file_object.write(line)
.Bearbeiten: Sie sind auch Stress für deine input-Datei. Sie wollen wahrscheinlich
open
die Ausgabe-Datei, und schreiben Sie Linien auf, wie Sie sind, Lesen Sie in aus der input-Datei.Finden Sie unter: input /output in python.
InformationsquelleAutor der Antwort Seth
Obwohl @Ignacio gab Ihnen eine einfache Lösung, ich dachte, ich könnte eine Antwort, die Ihnen einige weitere details über die Probleme mit Ihrem code...
InformationsquelleAutor der Antwort jdi
Ähm...
Auch, Sie nie Ausgabe in eine neue Datei.
InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams
Nur als ein FYI, hier ist mein Arbeits-code:
Nochmals vielen Dank an alle für all die tollen Rückmeldungen!
InformationsquelleAutor der Antwort Keith
Bekam ich diese Fehlermeldung und fixiert ist, indem der Verzeichnis-Pfad in der Schleife. Skript nicht im gleichen Verzeichnis wie die Dateien. dr1 ="~/test" - Verzeichnis auf variable
InformationsquelleAutor der Antwort Rohit Malgaonkar