我希望在发送请求时启动python文件,并在发送off请求时终止该python进程。我能够发送打开和关闭请求,但无法运行其他python文件或从我编写的程序中将其杀死。
我可以进行子流程调用,但是我认为应该有一种方法可以在python脚本中调用其他python脚本,并且应该有一种在达到目的后杀死这些脚本的方法。
答案 0 :(得分:0)
我建议使用线程。
在函数doit中编写python脚本中的所有代码(import语句除外) 然后导入它:
thescript.py的内容:
import time
def doit(athread):
while not athread.stopped():
print("Hello World")
time.sleep(1)
您的程序应如下所示:
import threading
import time
import thescript
class FuncThread(threading.Thread):
def __init__(self, target):
self.target=target
super(FuncThread,self).__init__()
self._stop_event=threading.Event()
def stop(self):
self._stop_event.set()
def stopped(self):
return self._stop_event.is_set()
def run(self):
self.target(self)
t1=FuncThread(thescript.doit)
t1.start()
time.sleep(5)
t1.stop()
t1.join()
您可以随时退出线程,我只等了5秒钟,然后调用了stop()方法。