#python #python-2.7 #raspberry-pi #subprocess
#python #python-2.7 #raspberry-pi #подпроцесс
Вопрос:
Я пишу код на python, который считывает статус (то есть «включено») из текстового файла, а затем выполняет скрипт python (a.py ) и если он считывает ‘off’ из текстового файла,
Я хочу завершить 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. Похоже, что скрипт вообще не выполняет ваш блок else, укажите другое возможное условие с помощью elif
Ответ №1:
Вы можете попробовать это:
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'])