用Popen启动脚本

时间:2016-12-02 16:36:18

标签: python

我有以下pythons脚本:

#!/usr/bin/python

import time
import datetime
import subprocess
from subprocess import Popen
import pifacedigitalio
from time import sleep
pfd = pifacedigitalio.PiFaceDigital() # creates a PiFace Digital object
testprocess = None
now = datetime.datetime.now()

if ((now.hour >= 6 and now.minute >=30) and (now.hour < 9)) or ((now.hour >= 7) and (now.hour < 10)):
     if pfd.input_pins[0].value == 1 and not testprocess:
         subprocess.Popen(["/bin/led/aus"])
         sleep(5)
         testprocess = Popen(["/bin/led/Zone1-4Morgen"])
         sleep(1)

if pfd.input_pins[0].value == 0:
    if testprocess:
        testprocess.kill()
        testprocess = None
        subprocess.Popen(["/bin/led/aus"])
        sleep(1)

脚本并不完全符合我的要求,也许你可以提供帮助。在时间窗口pfd.input_pins[0].value == 1内,它应该关闭/ bin / led / aus并启动脚本/ bin / led / Zone1-4Abend。

如果输入pfd.input_pins[0].value返回0,则应该终止该脚本 Zone1-4Abend并关闭/ bin / led / aus。

下面的脚本工作正常,我在上面的脚本中所做的就是添加一个时间窗口。因此,只有时间窗口和pfd.input_pins[0].value为真时,脚本才会继续。

#!/usr/bin/python

import subprocess
from subprocess import Popen
import pifacedigitalio
from time import sleep
pfd = pifacedigitalio.PiFaceDigital() # creates a PiFace Digital object
testprocess = None

while(True):
    if pfd.input_pins[0].value == 1 and not testprocess:

        subprocess.Popen(["/bin/led/aus"])
        sleep(5)
        testprocess = Popen(["/bin/led/Zone1-4Morgen"])
        sleep(1)

0 个答案:

没有答案