首页 > 解决方案 > 如何在不使用“shell=True”的情况下将“subprocess.run”结果写入日志文件?

问题描述

目前,我正在使用以下格式将运行结果写入日志文件。

p = subprocess.run(["mpiexec -n 2 ./executor >log"],shell=True)

谁能告诉我在写日志文件时如何避免使用“shell=True”?

谢谢你。

标签: pythonsubprocessmpi4py

解决方案


只需自己拆分参数,自己打开文件,然后将打开的文件传递run给以使其将输出发送到那里:

with open('log', 'wb') as outfile:
    p = subprocess.run(['mpiexec', '-n', '2', './executor'], stdout=outfile)

推荐阅读