/ / Python Batch-Umbenennungsskript, das Dateien an das Stammverzeichnis sendet - Python, Python-3.x, Batch-Verarbeitung, Batch-Umbenennung

Python Batch-Umbenennen von Skript Senden von Dateien an Stammordner - Python, Python-3.x, Stapelverarbeitung, Batch-Umbenennen

Ok, das ist komisch und vielleicht unbeholfen. Ich habe ein Skript erstellt, damit ich das Ende der Untertiteldateien ändern kann, um die Konsistenz zu erhalten. Im Wesentlichen ersetzt es A.X.str bis A.Y.str. Es funktionierte einwandfrei in einem einzigen Ordner.

Ich entschied mich dann dafür, eine rekursive Version davon zu machen, damit ich es in jedem Ordner machen konnte, unabhängig davon, ob die Episoden zusammen waren, getrennt nach Staffel oder auf einem einzelnen Pfad.

Ich weiß wirklich nicht wie oder warum, aber es hat alle Dateien an den Stammordner gesendet, den ich verwendete, bis ein FileExistsError angehoben wurde.

Das Codebit, das ich verwende, ist:

def rewrite(folder, old, new):
for f in next(os.walk(folder))[2]:
os.rename(os.path.join(folder, f),
os.path.join(path, f.replace(old, new)))
for f in next(os.walk(folder))[1]:
x = os.path.join(folder, f)
rewrite(x, old, new)

Wo "alt" "A.X.str" ist, "neu" ist "A.Y.str" und Ordner ist der vollständige Pfad des Stammordners "C: SeriesSerie Name".

Warum funktioniert das nicht rekursiv? Das erste Code-Bit (First FOR-Schleife) funktioniert in einem einzigen Ordner. Ist das Problem mit dem "nächsten", das ich benutze, um die Namen von Dateien und Ordnern abzurufen?

Antworten:

1 für die Antwort № 1

Der Code, den Sie uns anzeigen, verwendet a path Variable im Umbenennungsziel - das sollte das sein folder stattdessen variabel.