我有三个.py文件,我想在Python脚本文件中同时运行。我最初调用subprocess.call()
三次(每个.py文件一次),但记得它会阻塞直到命令完成。我试过subprocess.Popen(['screen', 'python_file'])
因为我认为它没有阻止但是当我用screen -ls
检查进程时,只有一个进程正在运行。如何使用Python脚本同时运行所有三个程序?我应该使用multiprocessing
还是multithreading
库?
编辑:其他进程不应该完成,因为它们在无限循环中运行。这正是我在Python脚本文件中的内容。我正在使用screen
,因为每个.py文件都有stdout登录到终端,我希望能够看到每个文件的记录内容。
subprocess.Popen(['screen', './submitter.py'])
subprocess.Popen(['screen', './worker.py'])
subprocess.Popen(['screen', './tester.py'])
答案 0 :(得分:7)
如果您想使用multiprocessing
,可以试试这个:
import multiprocessing
def worker(file):
# your subprocess code
if __name__ == '__main__':
files = ["path/to/file1.py","path/to/file2.py","path/to/file3.py"]
for i in files:
p = multiprocessing.Process(target=worker, args=(i,))
p.start()