Dateien in Unterverzeichnissen clever umbenennen mit Python

Hier noch ein weiteres Beispiel, wie man sich mit Python sinnlose manuelle Arbeiten erleichtern kann. Gegeben sei die folgende Verzeichnisstruktur:

Verzeichnis1
 Ordner1
  Unterordner1
   Willich.txt
 Ordner2
  Unterordner2
   Willich.txt
 Ordner3
  Unterordner3
   Willich.txt

Die in den Ordnern liegenden Dateien sind alle gleich benannt (trotz unterschiedlicher Inhalte), sollen aber für die weitere Verarbeitung in einen Ordner verschoben werden. Man kann sie jetzt manuell nach dem Schema „Ordnerx-Unterordnerx-Dateiname“ umbenennen, man kann es aber auch lassen und ein kurzes Python-Skript dazu schreiben. Spätestens bei 20 oder 30 Dateien lohnt sich der Aufwand der initialen Entwicklung, das Beispiel lässt sich auch leicht auf andere Aufgaben übertragen. Die folgende Python-Datei speichert man in „Verzeichnis1“, dieses Verzeichnis bildet dann den root-Pfad. Der Rest ist dann einfach nur cleveres Auswerten des Pfades und das Wechseln der Backslashes in Unterstriche, um den neuen Pfad zu bauen.

import os
 
for (root,dirs,files) in os.walk('.'):
 
    for file in files:
        fullpath = os.path.join(root,file)
 
        if fullpath.endswith('.txt'):
            newpath = root+'\\'+root[2:].replace('\\','_')+'_'+file
            print(newpath)
            os.rename(fullpath, newpath)