Seite 1 von 1

Fotos mit fortlaufender Nummer versehen

Verfasst: Mittwoch 12. August 2015, 13:21
von Jonny550
Hallo,
ich habe ein Programm geschrieben, in dem viele Fotos hintereinander erstellet werden. Jetzt möchte ich aber gerne, dass in dem Dateinamen eine fortlaufende Nummer erscheint. Ich habe es schon mit %04d versucht, dies klappt aber leider nicht.

Code: Alles auswählen

import time
import picamera
import os

try:
        while True:
                Zeitstempel = time.strftime("%d_%m_%Y_%H_%M_%S")
                cam = picamera.PiCamera()
                cam.resolution = (1280, 720)
                cam.capture ("/home/pi/Fotos/Foto_"+Zeitstempel+".jpg")
                cam.close()
                #time.sleep (2)

except KeyboardInterrupt:
    print("Photo Shoot stopped by user")
    cam.close()

Hat jemand eine Idee, wie ich das dazu bekomme?

Danke

Re: Fotos mit fortlaufender Nummer versehen

Verfasst: Mittwoch 12. August 2015, 14:21
von Sirius3
@Jonny550: Was heißt "klappt aber leider nicht"? Gibt es eine Fehlermeldung? Was erwartetst Du? Was passiert wirklich?

PS: bei Datumsstempeln wird üblicherweise Jahr-Monat-Tag geschrieben, damit man die Dateien einfach sortieren kann.

Re: Fotos mit fortlaufender Nummer versehen

Verfasst: Mittwoch 12. August 2015, 14:31
von lackschuh

Re: Fotos mit fortlaufender Nummer versehen

Verfasst: Mittwoch 12. August 2015, 14:34
von Jonny550
Wenn ich folgendes schreibe: cam.capture("/home/pi/Fotos/Foto%04d"+Zeitstempel+".jpg")
schreibt er einfach %04d mit in den Dateinamen. Alos so: Foto%04d_11_08_2015_21_56_19.jpg

Ich möchte aber gerne, dass der Dateiname so aussieht: Foto0001_11_08_2015_21_56_19.jpg
und das nächste Foto dann Foto0002_11_08_2015_21_56_19.jpg benannt wird und so weiter.

Da muss es doch einen Befehl für geben oder was hab ich da falsch gemacht?

Re: Fotos mit fortlaufender Nummer versehen

Verfasst: Mittwoch 12. August 2015, 14:49
von BlackJack
@Jonny550: Schau Dir in einem Grundlagentutorial Deiner Wahl Zeichenkettenformatierung mit der `format()`-Methode auf Zeichenketten an und dann benutze das um in *eine* Zeichenkette mit Platzhaltern die Zahl und den Zeitstempel hinein zu formatieren. Anstatt da irgendwas mit ``+`` zusammenzustückeln.

Für den Zeitstempel solltest Du das `datetime`-Modul verwenden statt `time`, denn bei `datetime.datetime`-Objekten kann man die Formatierung direkt als Optionen im Platzhalter schreiben und muss da nicht vorher eine separate Zeichenkette draus basteln. Und den Zähler musst Du natürlich selber verwalten, so etwas fällt nicht einfach so vom Himmel. Dafür ist `itertools.count()` nützlich was hier mit einer ``for``-Schleife verwendet werden kann, anstelle der ``while``-Schleife.