使用 GNU Parallel 将 shell 脚本重写为 Python

Rewrite shell script with GNU Parallel to Python

我有一个 shell 脚本,它并行使用 GNU Parallel to 运行 函数。现在,我正在将脚本重写为 Python,但我不知道如何正确执行此操作。

在脚本中,我有:

parallel --jobs 5 --linebuffer run {1} ::: "${files[@]}"

如何将其转换为 Python 代码?在shell中,files是一个文件数组,run方法调用处理文件的外部程序。

在Python中,我有方法def run(file),它有几个Python命令来准备数据,最后,它用os.command调用外部程序。

def run(file):
  do something with input file
  os.command(...)

我会使用多处理:

from multiprocessing import Pool

def run(file):
  do something with input file
  os.command(...)

if __name__ == '__main__':
  with Pool(5) as p:
    p.map(run, sys.argv[1:])

调用它:

python test.py "${files[@]}"