Python Screenshot speichern vor weiterverwendung?
Ich habe etwas in python programmiert, dass screenshots macht und danach speichert. Bei dem speichern muss ich aber immer manuel den dateispeicherort auswählen und speichern. Das dauert. Kann ich ein screenshot in dem python script weiterverwenden ohne den vorher abzuspeichern? Sodass der screenshot im ram gespeichert wird und ich das dann abfragen kann.
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.