Seite 1 von 1

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

Verfasst: Donnerstag 17. August 2006, 11:16
von crockett
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

Verfasst: Donnerstag 17. August 2006, 11:31
von DatenMetzgerX

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

Re: [Anfängerfrage] Laden von vielen Bild-Dateien vereinfach

Verfasst: Donnerstag 17. August 2006, 11:40
von gerold
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
:-)

Verfasst: Donnerstag 17. August 2006, 12:17
von crockett
Super, funktioniert beides.

Danke an beide, wieder viel gelernt :!: