Python сохранить несколько изображений с pyautogui - PullRequest
0 голосов
/ 19 января 2020

Я делаю скриншот программы, которая делает скриншот каждые 5 секунд. Но это сохранит только 1 .png файл. Его имя всегда одинаково, и он не создает дубликатов.

Как сохранить их как image (1), image (2), image (3) ....

Это мой код:

import pyautogui
import threading

#myScreenshot = pyautogui.screenshot()
#myScreenshot.save(r'C:\Users\censored\Desktop\screenshot\imgs\image.png')


def ScreenShotTimer():
    threading.Timer(5.0, ScreenShotTimer).start()
    myScreenshot = pyautogui.screenshot()
    myScreenshot.save(r'C:\Users\censored\Desktop\screenshot\imgs\image.png')
    print('Program Is Still Running.')

ScreenShotTimer()

Спасибо за помощь!

1 Ответ

0 голосов
/ 19 января 2020
import pyautogui

# Solution 1

import time

for i in range(60):
    ss = pyautogui.screenshot()

    ss.save(f"SS {i}.png")

    time.sleep(5)


# Solution 2

import threading
import functools as ft

def screenshot(index: int = 0):
    ss = pyautogui.screenshot()

    ss.save(f"SS {index}.png")

    threading.Timer(5.0, ft.partial(screenshot, index+1)).start()

screenshot()

Два решения.

  1. Использует a для l oop (может быть некоторое время l oop).
  2. Использует threading.Timer и functools.partial для повторного вызова функции с другим параметром.
...