os.walk + os.renames "absichern"
Verfasst: Mittwoch 14. Dezember 2011, 15:22
Hi Jungs,
ich musste kürzlich ca. 400 digitale Fotos umbenennen, weil die aus irgendeinem Grund von dem Entwickler auf beiden DVDs genau gleich-genannt wurden und ich die eigentlich im selben Verzeichnis haben wollte.
Da habe ich mir kurzerhand folgendes Skript zusammengewurstelt, was auch funktioniert. Das ist bis jetzt nur Proof of Concept, also ich kümmere mich um die Dateiendungen etc. noch später.
Da dieses Skript aber, wenn man nicht aufpasst, alle Dateien auf der Festplatte in DisposX umbenennen kann, wollte ich von euch mal wissen, wie ihr so etwas "absichern" würdet, quasi eine Kindersicherung 
Mir fiel bis jetzt nur ein, erst auf alle möglichen Strings in der variable "directory" zu testen (== '/home', oder in Windows den Ordner WINDOWS angegeben etc etc.). Kann man u. U. bei os.walk() einstellen wie viele Unterverzeichnisse die Funktion durchlaufen soll?
Danke für euren Input.
EDIT: Ich vergaß zu erwähnen: Python Version 2.6 und OS ist Ubuntu wird aber auch dann in Windows XP ausprobiert.
ich musste kürzlich ca. 400 digitale Fotos umbenennen, weil die aus irgendeinem Grund von dem Entwickler auf beiden DVDs genau gleich-genannt wurden und ich die eigentlich im selben Verzeichnis haben wollte.
Da habe ich mir kurzerhand folgendes Skript zusammengewurstelt, was auch funktioniert. Das ist bis jetzt nur Proof of Concept, also ich kümmere mich um die Dateiendungen etc. noch später.
Code: Alles auswählen
import os
def change_all_filenames(directory):
i = 0
for root, dirs, files in os.walk(directory):
for f in files:
os.renames(os.path.join(root,f),
os.path.join(root, "Dispos{0}".format(i)))
i += 1
if __name__ == "__main__":
change_all_filenames('/home/nebelhom/Practice Folder')Mir fiel bis jetzt nur ein, erst auf alle möglichen Strings in der variable "directory" zu testen (== '/home', oder in Windows den Ordner WINDOWS angegeben etc etc.). Kann man u. U. bei os.walk() einstellen wie viele Unterverzeichnisse die Funktion durchlaufen soll?
Danke für euren Input.
EDIT: Ich vergaß zu erwähnen: Python Version 2.6 und OS ist Ubuntu wird aber auch dann in Windows XP ausprobiert.