我想在Python脚本文件中同时运行三个.py文件。最初,我三次调用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'])

最佳答案

如果要使用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()

关于python - 同时执行多个.py文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18216205/

10-14 08:52
查看更多