Как я могу выполнить и завершить другой скрипт Python в текущем скрипте Python - PullRequest
0 голосов
/ 04 апреля 2019

Я пишу код на python, который считывает состояние (то есть «включено») из txt-файла, а затем выполняет скрипт python (a.py) и, если он считывает «off» из файла txt,

Я хочу завершить a.py и запустить другой скрипт b.py.

Пока я могу запустить a.py, когда статус «включен», но невозможно закрыть этот скрипт, когда статус «выключен».

Где я не прав?

Я использую библиотеку подпроцесса в Raspberry pi.

import subprocess as sp

while True:

        file = open("status.txt", "r")#open txt file
        status = file.read()#read the status of file
        print(status)#print the status
        time.sleep(2)


        if status =='on':                              
           extProc =  sp.Popen(['python','a.py'])

        elif status == off:
            print("stop")
            sp.Popen.terminate(sp.Popen(['python','a.py']))

1 Ответ

0 голосов
/ 04 апреля 2019

Вы можете попробовать это:

import subprocess as sp
import time

procA = None
procB = None
while True:

    file = open("status.txt", "r")  # open txt file
    status = file.read()            # read the status of file
    file.close()
    print(status)                   # print the status
    time.sleep(2)

    if status == 'on':
        if procB:
            procB.terminate()
            procB = None

        if not procA:
            procA = sp.Popen(['python', 'a.py'])

    else:
        if procA:
            procA.terminate()
            procA = None

        if not procB:
            procB = sp.Popen(['python', 'b.py'])
...