Fotos mit fortlaufender Nummer versehen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Jonny550
User
Beiträge: 7
Registriert: Freitag 24. Juli 2015, 11:40

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
Sirius3
User
Beiträge: 17797
Registriert: Sonntag 21. Oktober 2012, 17:20

@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.
Jonny550
User
Beiträge: 7
Registriert: Freitag 24. Juli 2015, 11:40

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?
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.
Antworten