问题描述
我想拍摄一个确定区域的屏幕快照,并根据循环中的i保存图像,然后滚动并继续。当滚动工作时,我最终在每个文件夹上只有1个保存的图像,而我每个文件夹应该有5个。帮助吗?
import time
import pyautogui
import sys
i = 10
while i >=6:
pyautogui.moveto(54,662)
pyautogui.dragTo(578,662,3,button='left')
pyautogui.mouseUp(button='left')
im = pyautogui.screenshot(region=(54,398,524,528))
im.save(r"c:\users\yagci\desktop\istanbul\0\(10-i).png")
i -=1
time.sleep(1)
if i==5:
pyautogui.moveto(316,916)
pyautogui.dragTo(3316,button='left')
pyautogui.mouseUp(button='left')
i-=1
while 0<=i <5:
pyautogui.moveto(578,662)
pyautogui.dragTo(54,button='left')
pyautogui.mouseUp(button='left')
im = pyautogui.screenshot(region=(54,528))
im.save(r"c:\users\yagci\desktop\istanbul\1\i.png")
i -=1
time.sleep(1)
解决方法
您的行
im.save(r"c:\users\yagci\desktop\istanbul\1\i.png")
应该像
im.save(f"c:\users\yagci\desktop\istanbul\1\{i}.png")
有关字符串模板的用法。使用r可以创建一个对您没有帮助的原始字符串。否则使用
im.save("c:\users\yagci\desktop\istanbul\1\" + str(i) + ".png")
对您来说可能更易读
,一个问题肯定是路径字符串中的“ i”没有转换为它的值。
@richiek答案的替代方法是使用:
im.save(r"c:\users\yagci\desktop\istanbul\0\(10-{}).png".format(i))
和
im.save(r"c:\users\yagci\desktop\istanbul\1\{}.png".format(i))