Ich habe eine Menge Fragen mit diesem Problem gelesen, aber ich habe festgestellt, dass es aus vielen vielen Gründen passiert, und habe keine Antwort auf meine gefunden bestimmtes Problem. Die Sache ist, ich habe versehentlich einige Dateien gelöscht und Photorec verwendet, um sie wiederherzustellen (ich bin auf Ubuntu 16.04 Xenial). Das Problem ist, es hat 2600+ Ordner wiederhergestellt! Ich schreibe einen kleinen Dateicrawler, um die Dateien loszuwerden, die ich nicht brauche - die einzigen Dateien, die mich interessieren, sind .py, .jpg, .png und .mp3. Hier ist der Code auf meinen Crawler:Python - OSError: [Errno 2] Keine solche Datei oder Verzeichnis
import os
path=
for (path, dirs, files) in os.walk(path):
for name in files:
if name.endswith('.py') or name.endswith('.jpg') or name.endswith('.png') or name.endswith('.mp3'):
continue
else: os.remove(name)
Ich definiere ‚Pfad‘ manuell, und ich habe einen Test gemacht, wo ich Teil der Pfade, Verzeichnisse und Dateien zu drucken, und es druckt, was ich will. Wenn Sie den folgenden Code ausführen, wird jedoch zurückgegeben:
OSError: [Errno 2] No such file or directory: 'f0272560.java'
Ich nehme an, ist die erste Datei, die ich versuche zu entfernen. Ich vermute, dass es nach der Datei sucht, nachdem sie bereits gelöscht wurde. Hat das Sinn oder ist es etwas anderes, das den Fehler verursacht? Wie könnte ich das beheben?
Vielen Dank im Voraus!
Sie übergeben den Dateinamen nur an os.remove() '. Sie sollten den vollständigen Pfadnamen übergeben. –