我正在尝试使用Python创建一个程序,每次按“输入”时都会捕获并保存一个独特的屏幕截图。我在为所述屏幕截图分配唯一文件名时遇到问题。这是关于捕获屏幕截图的代码:
def on_press(key):
if key == Key.enter:
x = 1
bitmap = autopy.bitmap.capture_screen()
bitmap.save('C:\Users\User\Desktop\Folder\Capture{}.png'.format(x))
x += 1
正如您所看到的,我每次按“输入”时,我都会初始化一个变量x,我希望将其值增加1。程序序列如下:按Enter键 - >捕获截图1 - >将x值增加1 - >按Enter键 - >捕获截图2 - >将x值增加1(依此类推)。我尝试使用for循环来改变x的值,但结果通常涉及在我按下“Enter”后立即捕获大量的屏幕截图。怎么解决?任何帮助是极大的赞赏。
答案 0 :(得分:0)
每次key
设置为Key.enter
时,您都会将x
的值重置为1
。因此,当您保存文件时x
始终为1
。您需要在函数外部保存x
的状态。
x = 1
def on_press(key):
global x
if key == Key.enter:
bitmap = autopy.bitmap.capture_screen()
bitmap.save('C:\Users\User\Desktop\Folder\Capture{}.png'.format(x))
x += 1
答案 1 :(得分:0)
def on_press(key):
if key == Key.enter:
x = 1
bitmap = autopy.bitmap.capture_screen()
bitmap.save('C:\Users\User\Desktop\Folder\Capture{}.png'.format(x))
x += 1
您的问题中的代码未正确缩进。然后,函数内的'x'是'local'变量。它在下次通话时没有正确的值。您可以像这样定义x的全局实例:
x = 1
def on_press(key):
global x
if key == Key.enter:
bitmap = autopy.bitmap.capture_screen()
bitmap.save('C:\Users\User\Desktop\Folder\Capture{}.png'.format(x))
x += 1