捕获屏幕截图时在后台运行的Python脚本

时间:2015-01-18 01:37:54

标签: python linux debian

如果访问了某个站点,我创建了一些python代码来捕获屏幕截图。 当我从终端运行我的代码时,它运行正常并提供输出。当设置为cron作业或启动脚本时,它似乎不起作用。可能有什么不对?抱怨无法开始显示,但如何进行排序?代码如下。

#!/usr/bin/python2.7
import time
import subprocess
def get_current_status(netss):
    netss = subprocess.check_output(“ss -rt”, shell=True)
    if “facebook” in netss:
        out_put = subprocess.check_output(‘import -window root “/home/user/test/new_$(date +%F-%N).png”‘, shell=True)
        time.sleep(3)
    elif “youtube” in netss:
        out_put = subprocess.check_output(‘import -window root “/home/user/test/new_$(date +%F-%N).png”‘, shell=True)

     else:
        print(“Not yet time to capture”)

def main():
    get_current_status(“netss”)
while True:
    main()
    time.sleep(10)

1 个答案:

答案 0 :(得分:0)

我在python3中使用subprocess.getoutput并在python脚本中设置DISPLAY环境来整理它。您也可以将此python脚本作为cronjob运行。当我在“python的类和对象”中获取数据时,我开发了这个,请看下面的代码:

#!/usr/bin/env python3
import subprocess
import time
import pyscreenshot as ImageGrab
import os
if not 'DISPLAY' in os.environ:
    os.environ['DISPLAY'] = ":0"

class NewCapture:
    command = subprocess.getoutput("sudo ss -nt state established dst :443")
    file_name = time.strftime("%Y-%m-%d-%H-%M-%S" +".png")
    grab = ""
    def funct_capture(self):

        if ":443" in self.command:

            self.grab = ImageGrab.grab_to_file("/home/user/test/%s" % self.file_name)

        else:
            pass

firstcommand = NewCapture()
firstcommand.funct_capture()