如何从另一个python程序运行和退出python脚本?

时间:2019-02-09 12:06:48

标签: python-3.x scripting

我希望在发送请求时启动python文件,并在发送off请求时终止该python进程。我能够发送打开和关闭请求,但无法运行其他python文件或从我编写的程序中将其杀死。

我可以进行子流程调用,但是我认为应该有一种方法可以在python脚本中调用其他python脚本,并且应该有一种在达到目的后杀死这些脚本的方法。

1 个答案:

答案 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()方法。