python脚本的多处理

时间:2019-02-07 07:09:18

标签: python bash parallel-processing multiprocessing xargs

我想在bash shell中并行运行多个python脚本(比如说script1.py到script10.py)。有人可以建议使用xargs命令同时运行所有程序的最佳方法是什么吗?或还有其他建议吗?预先感谢

3 个答案:

答案 0 :(得分:1)

使用bash:

for i in {1..10}; do 
    python script${i}.py &
done

答案 1 :(得分:0)

您需要考虑一些注意事项。 (没有考虑其他答案)

  • 脚本是否可以独立运行?如果是这种情况,这会更容易。如果没有,那么您将需要一个脚本管道来管理诸如Python的Luigi之类的依赖项。

  • 脚本可能需要不同的python解释器版本。 (2.7与3.7等。)

  • 如果您决定继续使用Bash,则使用no​​hup可以确保在调用过程结束时该过程不会退出。

这不是您想的那样容易的问题。

答案 2 :(得分:0)

对于这种用例,我是xargs -P<number>的支持者,特别是因为它会等待所有正在运行的子项完成。

假设您有几个脚本,但仍然最多并行4个,您可以:

ls -1 ./script*.py | xargs -I% -P4 sh -c '%'

如果您碰巧需要向脚本传递更多参数,则只需在%上方(引号内)添加它们