如何读取文件每行参数通过xargs并行执行Python脚本
基于文件逐行输入的xargs并行执行Python脚本方案
直接执行如下命令即可满足需求:
cat experiments.txt | xargs -d '\n' -L 1 -P 8 python script.py
参数说明
-d '\n':指定xargs的输入分隔符为换行符,确保每行内部的参数空格不会被误识别为参数分隔符,每行内容会作为一组完整参数传递给脚本-L 1:每次读取1行内容作为单次脚本执行的入参-P 8:最多同时并行8个执行进程,可根据你的CPU核心数灵活调整该数值
更稳妥的兼容方案(避免特殊字符问题)
如果你的参数中包含空格、引号等特殊字符,可使用空字符作为分隔符的版本,完全避免参数解析错误:
sed 's/$/\x00/' experiments.txt | xargs -0 -L 1 -P 8 python script.py
校验方法
执行前可以先把python替换为echo,校验参数传递是否符合预期:
cat experiments.txt | xargs -d '\n' -L 1 -P 8 echo python script.py
确认输出的参数和experiments.txt每行内容对应无误后,再换回实际执行命令即可。
内容的提问来源于stack exchange,提问作者Jared
相关产品推荐
相关产品推荐

