Frage

Ich versuche, einige Dateien umbenennen, aber eine verwirrende Fehler * bekommen. Als ich dies ausführen:

if os.path.isfile(fullPath):
    print 'fmf exists'
    print fullPath
    print newFilePath
    os.rename(fullPath,newFilePath)

ich die folgende Fehlermeldung erhalten:

fmf exists
(correct fullPath)
(correct newFilePath, ie. destination)
Traceback (most recent call last):
  File "whatever.py", line 374, in ?
    os.rename(fullPath,newFilePath)
OSError: [Errno 2] No such file or directory

Da ich weiß , dass die Datei auf fullPath existiert, ich bin durch den Fehler verwirrt. Natürlich gibt es newFilePath nicht, denn das ist dumm wäre. Irgendwelche Hinweise?

Danke! Alex

* Sind sie nicht alle?

War es hilfreich?

Lösung

Sie können immer noch die Ausnahme, wenn Sie versuchen, in ein Verzeichnis zu kopieren, das nicht existiert.

Andere Tipps

Ich kann nicht die vollen Innenleben des Codes sehen, also hier ist mein zwei Cent wert:

Ihr newFilePath kann ein Verzeichnis enthalten, das nicht existiert. Wenn das der Fall ist, dann, je nach Betriebssystem, ist Ihr Programm nicht in der Lage, eine Datei in einem Verzeichnis zu erstellen, die nicht existieren. Das könnte Ihr Fehler sein.

Hope, das hilft

Es scheint, wie das Plakat sein Problem gelöst, aber ich hatte das gleiche Symptom und die Ursache erschien, anders zu sein. Die Datei wurde ich zu Umbenennungs versucht hatte gerade in einem Subprozess Anruf in der vorhergehenden Zeile erstellt. Wenn ich noch einmal meinen Skript laufe, habe ich nicht das Umbenennungs Problem, da die Datei hatte in der vorherige Ausführung erstellt wurde, aber wenn ich die Datei zuvor erstellten gelöscht, würde ich das gleiche Problem mit Umbenennungs bekommen. Es scheint, wie os.rename wurde immer genannt, bevor der Unterprozess abgeschlossen wurde und die Datei daher nicht existierte noch umbenannt werden. I eingeführt, um eine os.wait () nach dem Subprozess Anruf, und ich glaube, dass dies mein Problem gelöst hat.

Ich hatte den gleichen Fehler, wenn meine neuen Dateinamen Schrägstriche enthalten, die mit Verzeichnis-Separatoren in Unix und Linux sind verwirrt. Zum Beispiel das Umbenennen einer Datei auf „4/27 / 2015.txt“ führt zu einem Verzeichnis, das nicht existiert und die Ergebnisse in „Keine solche Datei oder das Verzeichnis“. Sie können dieses Problem lösen, indem die Vorwärts-Schrägstriche mit einem anderen akzeptablen Zeichen ersetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top