Mein Skript hat folgende Aufgaben:
- Zeichnungsdateien von Pro/E in ein Unterverzeichnis "Zeichnungen" verschieben
- Dateinamensformat: '{0}.{1}.{2}'.format(ascii_zeichen, 'drw', int)
Beispiel: Grundplatte.drw.30
- Nur die Datei mit dem höchsten Index verschieben
- Nur drw Dateien verschieben
- Dateiindex nach dem Verschieben auf 1 setzen
Falls jemand ein Fehler findet oder etwas eleganter gelöst werden kann, sagt nur bescheid

Code: Alles auswählen
import os
import shutil
#os.path.join(os.getcwd(), 'Zeichnungen')
copytodir = os.getcwdu() + os.sep + u'Zeichnungen'
copyfromdir = os.getcwdu()
def user_abfrage(text, default = 'j'):
abfrage = raw_input(text)
if str.isalpha(abfrage):
return str.strip(abfrage).lower()[0]
else:
return default
frage = u'Sollen alle letzten Zeichnungsdateien in das Verzeichnis "Zeichnungen" verschoben werden? [J/n] '
if user_abfrage(frage, default = u'j') == 'j':
# Versuche Unterverzeichnis 'Zeichnungen' zu erstellen
try:
os.mkdir(copytodir)
except:
print u"Verzeichnis '{0}' konnte nicht erstellt werden".format(copytodir)
else:
# Verzeichnis in liste einlesen
verzeichnis_inhalt = os.listdir(copyfromdir)
# Für jedes eingelesene Element prüfen ob es sich
# um eine Datei handelt.
dateien = []
for element in verzeichnis_inhalt:
element_path = os.path.join(ziel, element)
if os.path.isfile(element_path):
dateien.append(element)
dateien.sort()
vergleich_alt = ''
for datei in dateien:
datei_splitted = datei.split('.')
if len(dateI_splitted) >= 3 and datei_splitted[-1].isdigit()\
and datei_splitted[-2].lower() == 'drw':
vergleich_alt = datei_splitted
if datei_splitted[-1] > vergleich_alt[-1]:
dateien.remove('.'.join(vergleich_alt))
datei_neu = '.'.join(datei_splitted[:-1])
else:
dateien.remove(datei)
for datei in dateien:
# Prüfen ob es sich um eine Pro/E Zeichnungsdatei handelt
# Format: '{0}.{1}.{2}'.format(ascii_zeichen, 'drw', int)
datei_splitted = datei.split('.')
try:
shutil.move(os.path.join(copyfromdir, datei), \
os.path.join(copytodir, datei))
except:
print u'FEHLER: {0} konnte nicht verschoben werden.'.format(\
os.path.join(copyfromdir,\
datei))
else:
print u'{0} verschoben nach {1}'.format(datei,\
os.path.join(copytodir, datei))
frage = u'Verschobene Zeichnungen auf Dateiindex 1 setzen? [j/N] '
if user_abfrage(frage, default = u'n') == 'j':
verzeichnis_inhalt = os.listdir(copytodir)
dateien = []
for element in verzeichnis_inhalt:
try:
datei = element.split('.')
name_neu = '.'.join(['.'.join(datei[:-1]), '1'])
os.rename(os.path.join(copytodir, element) \
os.path.join(copytodir, name_neu))
except:
print u'FEHLER: {0} konnte nicht umbenannt werden.'.format(\
os.path.join(copytodir,\
element)