Liste von Bildern umbenennen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

Also ich habe eine lange Liste von Bildern, die ich gerne automatisch umbenennen würde, dabei reicht es mir aber dass die alle Nummern bekommen.

Hab dazu folgendes Script gemacht:

Code: Alles auswählen

import os, os.path
path_pics = ***************


li = os.listdir(path_pics)
i = 1
for pic in li:
  os.rename(os.path.join(path_pics,pic), os.path.join(path_pics,"%s.jpg")) %(str(i))
  i += 1

Geht aber nicht.

Code: Alles auswählen

TypeError: unsupported operand type(s) for %: 'NoneType' and 'str'
:( was mach ich verkehrt?
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Die Klammerung ist falsch, so geht es:

Code: Alles auswählen

os.rename(os.path.join(path_pics,pic), os.path.join(path_pics,"%s.jpg" %(str(i))))
(Hausaufgabe: verstehen, wie die Fehlermeldung zustande kommt :))

Den expliziten Aufruf von str kannst du dir uebrigens sparen (und damit auch noch ein paar Klammern).
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Tipp: Schau mal wie Deine Klammern stehen. Worauf wendest Du '%' an?

edit: Viel zu langsam ...
meneliel
User
Beiträge: 256
Registriert: Montag 25. Juni 2007, 08:35
Kontaktdaten:

achso ... das %i muss noch mit IN die Klammer.

Ja ich ha die Fehlermeldung leider nur halb verstanden, und wusste aber dort nicht genau wo der Fehler lag.

Das mit dem str(i) hatte ich nur gemacht, weil es vorher halt auch nicht ging ... lag ja aber nun an den klammern .... *lalalala*


Danke. Wieder was gelernt.
BlackJack

Besser als '%s.jpg' ist vielleicht '%04d.jpg', dann sind die Zahlen alle vier Zeichen lang mit führenden 0en. Dann werden die Dateien alphabetisch richtig sortiert. Falls es mehr als 10000 Dateien sind, dann muss man natürlich mehr als 4 Stellen nehmen.
Antworten