【发布时间】:2020-04-02 18:38:03
【问题描述】:
我有三个 Python 脚本文件(script1.py、script2.py 和 script3.py),我希望 script1.py 和 script2.py 同时运行,并且 script3.py 仅在 script2.py 完成时启动(script1 .py 在 script3 启动时不必完成)。
我有一个这样的代码来解决它,但我不确定我是否在做正确的事情:
import subprocess
import multiprocessing
def func1(command):
subprocess.run(command, shell=True)
def func2(command):
subprocess.run(command, shell=True)
def func3(command):
subprocess.run(command, shell=True)
if __name__ =='__main__':
p1 = multiprocessing.Process(target=func1,args=('python3 script1.py',))
p2 = multiprocessing.Process(target=func2,args=('python3 script2.py',))
p3 = multiprocessing.Process(target=func3,args=('python3 script3.py',))
p1.start()
p2.start()
p2.join()
p3.start()
p3.join()
p1.join()
它会起作用吗?有一个更好的方法吗? 有没有规定我必须按照他们开始时的顺序加入他们?
【问题讨论】:
-
我想你想在 p3 行中使用
script3.py -
是的,谢谢。我会编辑。
标签: python multiprocessing subprocess