Wie zu verwenden copyfile, wenn es Leerzeichen im Verzeichnis-Namen?
Ich versuche, führen Sie eine einfache Datei-Kopie-Aufgabe unter Windows, und ich bin mit einigen Problemen.
Mein Erster Versuch war die Nutzung
import shutils
source = 'C:\Documents and Settings\Some directory\My file.txt'
destination = 'C:\Documents and Settings\Some other directory\Copy.txt'
shutil.copyfile(source, destination)
copyfile
nicht finden können, die Quelle und/oder kann nicht erstellt das Ziel.
Meine zweite Vermutung war, zu verwenden
shutil.copyfile('"' + source + '"', '"' + destination + '"')
Aber es andernfalls wieder.
Irgendeinen Hinweis?
Bearbeiten
Ist der resultierende code ist
IOError: [Errno 22] Invalid argument: '"C:\Documents and Settings\Some directory\My file.txt"'
Scheint nicht selbstverständlich für mich. Vielleicht sollten Sie es beweisen.
Berücksichtigt. Ich entfernte die nutzlose Wort.
Don ' T entfernen Sie einfach das Wort, entfernen Sie alle, Ihre Annahmen. Es gibt keinen Grund für Sie zu scheitern, nur weil der eine Raum.
Berücksichtigt. Ich entfernte die nutzlose Wort.
Don ' T entfernen Sie einfach das Wort, entfernen Sie alle, Ihre Annahmen. Es gibt keinen Grund für Sie zu scheitern, nur weil der eine Raum.
InformationsquelleAutor SteeveDroz | 2012-02-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass Räume sind Schuld. Sie haben zu entkommen backslashes in Pfaden wie diesem:
oder, noch besser, verwenden Sie die
r
Präfix:source
an anderer Stelle definiert ist. Wie kann ichr source
?Gut, Sie sollten fliehen, wo er definiert wird. Wenn es nicht in den code, dann ist es wahrscheinlich brauchen wir nicht zu entkommen. Tun
print repr(source)
um sicher zu gehen. Die Schrägstriche werden sollte, flüchtete dann.print repr(source)
gibt Doppel-backslash würde Pfaden.InformationsquelleAutor DzinX
Schrägstriche verwenden oder eine r'raw string'.
InformationsquelleAutor Mark Tolonen
Copyfile Griffe Raum würde Dateinamen.
Sind Sie nicht die Flucht des \ in den Dateipfaden richtig.
Um zu veranschaulichen, versuchen Sie dies ausführen:
Scheint es, gibt es andere Probleme als gut.
Errno 22
weist auf ein weiteres problem. Ich habe gesehen, dieser Fehler in den folgenden Szenarien:Richtig. Aber ich vermute, er ist die Desinfektion der/die Anonymisierung der Pfade im code-Beispiele, so ist es immer noch eine überlegung Wert.
InformationsquelleAutor Deestan