|
Datei-Endungen tauschen
Stellen Sie sich vor, Sie müssen Datei-Endungen im Auge behalten, da bestimmte Programme dieselben anders als erwartet speichern: so kann es vorkommen, das ein Grafik-Programm (oder ein PDF-Writer etc.) Endungen nach diesem Muster erzeugt: *.JPG. Sie möchten jedoch vielmehr eine klein geschriebene Endung (*.jpg). Das folgende Python-Skript erledigt diese Aufgabe im Handumdrehen:
#!/usr/bin/env python
import os, sys, glob
class Endung(object):
def __init__(self, alt, neu): self.tausche(alt, neu) def tausche(self, alt, neu): try: alt = ''.join(['*.', alt]) neu = ''.join(['.', neu]) for datei in glob.glob(alt): os.rename(datei, ''.join([os.path.splitext(datei)[0], neu]))
# Ergebnis checken res = os.listdir('.') print '\n'.join([ x for x in res if os.path.splitext(x)[1] == neu ]) except: print sys.exc_type, '\n', sys.exc_value, '\n' if __name__ == '__main__': alt = 'JPG'; neu = 'jpg' Endung(alt, neu)
Natürlich muss ein solches Skript an die jeweilige Situation angepasst werden. Das Beispiel sollte lediglich die grundsätzliche Vorgehensweise demonstrieren. Die entscheidende Rolle fällt den Modulen os und glob zu, sie verrichten den größten Teil der Arbeit. Unter dem Kommentar (# Ergebnis pruefen) wird das Ergebnis - die geänderten Dateien-Namen – ausgegeben. Speichern Sie das Skript als endung.py und rufen Sie es auf:
ich@meinrechner> python endung.py
Das Skript lässt sich weiter anpassen: modifizieren Sie beispielsweise die letzte Zeile: Endung(sys.argv[1], sys.argv[2]). Durch Argumente (auf der Kommandozeile) wird der Code selbstredend flexibler und ist zudem nicht mehr auf einen bestimmten Datei-Typ (*.JPG) beschränkt. Der neue Aufruf:
ich@meinrechner> python endung.py JPG jpg
Viel Spass.
Thomas Kaufmann
|