WindowsError: [Error 2] Das system kann nicht die angegebene Datei gefunden
Ich habe ein problem mit diesem code. Ich bin versucht, benennen Sie die Dateinamen in einem Ordner, so dass Sie nicht mehr +'s
in Ihnen! Dieser arbeitete viele Male zuvor, aber plötzlich bekomme ich die Fehlermeldung:
WindowsError: [Error 2] The system cannot find the file specified at line 26
Zeile 26 ist die Letzte Zeile im code.
Weiß jemand, warum dies passiert ist? Ich habe gerade versprochen, jemand ich könnte das in 5 Minuten da hatte ich einen code! Schade das es nicht funktioniert!!
import os, glob, sys
folder = "C:\\Documents and Settings\\DuffA\\Bureaublad\\Johan\\10G304655_1"
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
filename = os.path.join(root, filename)
old = "+"
new = "_"
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
if old in filename:
print (filename)
os.rename(filename, filename.replace(old,new))
Nur eine kleine Bemerkung. Bei der Aktualisierung die Frage, um neue Informationen hinzufügen, hilft es anderen Lesern, wenn Sie verlassen die ursprüngliche Frage, und fügen Sie einfach die neuen bits, damit wir sehen können, die Geschichte.
InformationsquelleAutor Alice Duff | 2011-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass Sie möglicherweise Probleme mit Unterverzeichnissen.
Wenn Sie ein Verzeichnis mit Dateien "
a
", "b
" und Unterverzeichnis "dir
" mit den Dateien "sub+1
" und "sub+2
", der Aufruf zuos.walk()
ergibt die folgenden Werte:Beim verarbeiten des zweiten Tupel, werden Sie rufen
rename()
mit'sub+1', 'sub_1'
als die Argumente, wenn das, was Sie wollen, ist'dir\sub+1', 'dir\sub_1'
.Dieses Problem zu beheben, ändern Sie die Schleife in deinem code:
die verketten-Verzeichnis mit dem Dateinamen, bevor Sie etwas tun.
Edit:
Ich denke, das oben ist die richtige Antwort, aber nicht ganz der richtige Grund.
Vorausgesetzt, Sie haben eine Datei "
File+1
" in das Verzeichnis, inos.walk()
zurückEs sei denn, Sie sind in der "
10G304655_1
" - Verzeichnis, wenn Sie anrufenrename()
die Datei "File+1
" wird nicht in die aktuellen - Verzeichnis, das ist nicht das gleiche wie das Verzeichnisos.walk()
sucht. Indem der Aufrufos.path.join()
dir sagen, umbenennen, suchen Sie in das richtige Verzeichnis.Edit 2
Ein Beispiel für den code, der benötigt werden könnte:
kann nicht nach code in die Kommentare hey..
ich habe den code in meine ursprüngliche Frage! Im sorry, wenn diese wirklich grundlegende Fehler, die ich mache! Ich habe um das zu lernen, mich mit keine Ressourcen!!
simon - du bist unglaublich!! danke!!!!! Hurra!!!!
InformationsquelleAutor Simon Callan
Sind Sie mit
splitext
zu bestimmen, die Quelle mit dem Namen zu benennen:Wenn Sie auf eine Datei mit eine Erweiterung, die offensichtlich versuchen, benennen Sie den Dateinamen ohne die Erweiterung führt zu einem "Datei nicht gefunden" - Fehler.
InformationsquelleAutor Jim Brissom