首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >截图时在后台运行的Python脚本

截图时在后台运行的Python脚本
EN

Stack Overflow用户
提问于 2015-01-18 09:37:54
回答 1查看 902关注 0票数 0

我创建了一些python代码,用于在某个站点被访问时捕获屏幕截图。当我从终端运行我的代码时,它运行得很好,并且给出了输出。当设置为cron作业或启动脚本时,它似乎不起作用。会出什么问题呢?抱怨无法启动显示,但如何解决呢?代码如下。

代码语言:javascript
运行
复制
#!/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)
EN

回答 1

Stack Overflow用户

发布于 2015-08-21 19:51:49

我在python3中使用subprocess.getoutput并在python脚本中设置显示环境,解决了这个问题。您也可以像运行cronjob一样运行此python脚本。这是我在“python的类和对象”中获取gr.ounded的过程中开发的,请看下面的代码:

代码语言:javascript
运行
复制
#!/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()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28006311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档