5

我有三个要在 Python 脚本文件中同时运行的 .py 文件。我最初调用subprocess.call()了 3 次(每个 .py 文件调用一次),但记得它会阻塞直到命令完成。我尝试过subprocess.Popen(['screen', 'python_file']),因为我相信它不会阻塞,但是当我检查screen -ls只有一个进程在运行的进程时。如何使用 Python 脚本让所有三个程序同时运行?我应该使用multiprocessingormultithreading库吗?

编辑:其他进程不应该完成,因为它们在无限循环中运行。这正是我在 Python 脚本文件中的内容。我正在使用screen,因为每个 .py 文件都有标准输出登录到终端,我希望能够查看每个文件记录的内容。


subprocess.Popen(['screen', './submitter.py'])
subprocess.Popen(['screen', './worker.py'])
subprocess.Popen(['screen', './tester.py'])

4

1 回答 1

9

如果你想使用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()
于 2013-08-13T18:23:56.153 回答