我正在使用此代码在Python系统上使用Python制作screengrab:
from gi.repository import Gdk
window = Gdk.get_default_root_window()
x, y, width, height = window.get_geometry()
print("The size of the root window is {} x {}".format(1920, 1080))
# get_from_drawable() was deprecated. See:
# https://developer.gnome.org/gtk3/stable/ch24s02.html#id-1.6.3.4.7
pb = Gdk.pixbuf_get_from_window(window, 384, 216, 1152, 648)
if pb:
pb.savev("screenshot.png", "png", (), ())
print("Screenshot saved to screenshot.png.")
else:
print("Unable to get the screenshot.")
我想要做的是每次运行程序时Python都会增加文件名。所以输出文件第一次像“screenshot0.png”,第二次“screenshot1.png”等。
答案 0 :(得分:0)
由于您的程序每次都是从头开始运行,因此您无法存储最后一个屏幕截图索引(即使您可能在磁盘和存储的计数器之间存在差异)
但是,您可以检查以前的文件是否存在并增加计数器,直到它不存在,如下所示:
counter=0
while True:
new_name = "screenshot{:04}.png".format(counter)
if not os.path.exists(new_name):
break # file doesn't exist: we can use that name
counter+=1
pb.savev(new_name, "png", (), ())
请注意{:04}
格式,它会创建0001
,0002
前缀等...所以文件在文件浏览器中正确排序(优于普通{}
)< / p>
唯一的缺点是,如果您的文件夹中已有10000个文件,则在创建新文件之前将有10000个成功的文件测试。