[Anfängerfrage] Laden von vielen Bild-Dateien vereinfachen

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
crockett
User
Beiträge: 12
Registriert: Montag 29. Mai 2006, 21:36
Kontaktdaten:

Hallo allerseits,
ich frage mich ob es eine Möglichkeit gibt diesen Code

Code: Alles auswählen

self.images =[load_image('02656.png',-1),load_image('02657.png',-1),load_image('02658.png',-1),
 load_image('02659.png',-1), load_image('02660.png',-1),load_image('02661.png',-1), load_image('02662.png',-1),
 load_image('02663.png',-1), load_image('02664.png',-1),load_image('02665.png',-1), load_image('02666.png',-1), 
 load_image('02667.png',-1)]
mit einer Schleife zu vereinfachen, dass der Schreibaufwand nicht mehr so hoch ist. In etwa so (Pseudo-Code):

Code: Alles auswählen

self.images=[ do load_image() from 02657.png to 02667.png]
Ich hoffe es ist klar was ich meine.
Die Bilder sind durchgehend nummeriert, falls das eine Rolle spielt.

Für Lösungshinweise wäre ich sehr dankbar.

Gruß
crockett
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

Code: Alles auswählen

def load_images(min, max):
    images = []
    for i in range(min, max):
        images.append(load_image('%i.png' % i, -1))    
    return images
    
Ungetestet
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi crockett!

Wenn die Bilder alle in einem Ordner stehen und sonst keine PNGs in diesem Ordner rum liegen, dann könntest du ``glob`` einsetzen.

Code: Alles auswählen

from glob import glob
images = [ load_image(filename, -1) for filename in glob(r"C:\irgendeinordner\*.png") ]
Wenn das nicht der Fall ist, dann stehen doch sicher irgendwo die Dateinamen, die du einlesen willst...

Ansonsten generierst du dir einfach den gewünschten Dateinamen:

Code: Alles auswählen

filenames = [ "%05i.png" % number for number in range(2656, 2667 + 1) ]
images = [ load_image(filename, -1) for filename in filenames ]
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
crockett
User
Beiträge: 12
Registriert: Montag 29. Mai 2006, 21:36
Kontaktdaten:

Super, funktioniert beides.

Danke an beide, wieder viel gelernt :!:
Antworten