Python Screenshot speichern vor weiterverwendung?

jonashima  07.11.2020, 18:54

Wie speicherst du? Kannst du ein bisschen Code zur Verfügung stellen?

LAUCH375 
Fragesteller
 07.11.2020, 18:56

def takeScreenshot():

mySreenshot = pyautogui.screenshot()

save_path = asksaveasfilename()

mySreenshot.save(save_path+"_sreenshot.png")

2 Antworten

Aufbauend auf der Nachfrage sehe ich dass du die Methode asksaveasfilename() aufrufst. Ich weiß jetzt nicht genau was du dort hineingeschrieben hast, es klingt aber danach als würde damit ein Dialog geöffnet werden. Ich würde an deiner Stelle einfach screenshot als Datei Namen nehmen und die aktuelle Zeit dranhängen, damit er nicht überschrieben wird:

from datetime import datetime 
# das brauchen wir um das Datum
# anzuzeigen. 
def take_screenshot():
    # in Python trennen wir 
    # Worte mit Unterstrich

    # wir speichern das aktuelle Datum 
    # und uhrzeit. 
    now = datetime.now()
    # jetzt müssen wir es konvertieren
    # damit es lesbar ist. 
    now_string = now.strftime("%d.%m.%Y_%H:%M:%S")
    # das gibt uns z.b. "12.10.2020_21:30:45"
    # das packen wir direkt als den Screenshot Namen dazu und sagen:
    pyautogui.screenshot("screenshot_"+now_string +".png")
    

Das speichert dir den screenshot als „screenshot_aktuellezeit.png".

wenn du die Zeit anders darstellen willst, Schau mal hier vorbei, da siehst du was die ganzen Formatierungen bedeuten:

https://www.programiz.com/python-programming/datetime/strftime

du kannst vor dem Datei namen auch noch den Pfad angeben wo das Bild gespeichert werden soll. Wäre bestimmt sinnvoll wenn du da direkt den Pfad eines screenshot Ordners hinzufügst, damit du die Bilder auch leicht findest und Python nicht verwirrt ist.

Ich denke das wird gehen, aber frag mich nicht wie in Python. In anderen Programmiersprachen geht das. Du kannst die Abfrage nach dem Dateinamen vereinfachen wenn du den Dateinamen bestimmst, z.b. temp.jpg und danach wieder auf die Datei zugreifst.

Woher ich das weiß:eigene Erfahrung