fileNameCorrector
Verfasst: Samstag 15. April 2006, 13:55
Hi
Nach einiger Zeit mit der ich mich nun mit Python beschäftige, habe ich jetzt
mal die Gelegenheit gefunden mein erstes sinvolles (wenn man von Spielen
absieht
) Anwendungsprogramm zu schreiben.
Ich musste in einem ganzen batzen von Dateien die Groß-/Kleinschreibung
der Dateinamen ändern. Mein Script, dass diese Aufgabe löst wil ich euch
natürlich nicht vorenthalten
Ich poste es natürlich auch hier, damit ihr das Script verbessern könnt...
Zum Beispiel weiß ich nicht, ob hier OOP Sinn machen würde.
(Von Python mit OOP bin ich sowieso abgeschreckt; da blick ich echt nicht
mehr durch, ob jetzt New-Style Klassen oder doch nicht? oder was ganz
anderes?
)
Naja hier mal das Script
lg icepacker
Nach einiger Zeit mit der ich mich nun mit Python beschäftige, habe ich jetzt
mal die Gelegenheit gefunden mein erstes sinvolles (wenn man von Spielen
absieht

Ich musste in einem ganzen batzen von Dateien die Groß-/Kleinschreibung
der Dateinamen ändern. Mein Script, dass diese Aufgabe löst wil ich euch
natürlich nicht vorenthalten

Ich poste es natürlich auch hier, damit ihr das Script verbessern könnt...
Zum Beispiel weiß ich nicht, ob hier OOP Sinn machen würde.
(Von Python mit OOP bin ich sowieso abgeschreckt; da blick ich echt nicht
mehr durch, ob jetzt New-Style Klassen oder doch nicht? oder was ganz
anderes?

Naja hier mal das Script

Code: Alles auswählen
import os
def getFileNames(dir):
"""Hohlt alle Dateinamen aus dem Verzeichnis"""
getFiles = []
for file in os.listdir(dir):
getFiles.append(file)
return getFiles
def correctFileNames(fileNames):
""" Korrigiert die Dateinamen.
zB: aus 0596000855_python2-chp-2-sect-12.html
wird: 0596000855_python2-CHP-2-SECT-12.html
"""
newFileNames = []
for i in range(len(fileNames)):
s = fileNames[i].split('-', 1) # ['0596000855_python2', 'chp-2-sect-12.html']
str = s[1].split('.') # ['chp-2-sect-12', 'html']
str[0] = str[0].upper() # ['CHP-2-SECT-12', 'html']
# ['0596000855_python2', '-', 'CHP-2-SECT-12', '.', 'html']
newFileNames.append(s[0] + '-' + str[0] + '.' + str[1])
return newFileNames
def renamesTheFiles(oldFileNames, newFileNames, dir):
# Ins betreffende Verzeichnis wechseln
os.chdir(dir)
# Die Dateinamen aendern
for i in range(len(oldFileNames)):
os.rename(oldFileNames[i], newFileNames[i])
def main():
oldFileNames = []
newFileNames = []
dir = 'testordner'
oldFileNames = getFileNames(dir)
newFileNames = correctFileNames(oldFileNames)
renamesTheFiles(oldFileNames, newFileNames, dir)
if __name__ == '__main__':
main()