如何在不使用 "shell=True" 的情况下将 "subprocess.run" 结果写入日志文件?

How to write "subprocess.run" results to a log file without using "shell=True"?

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

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

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

谢谢。

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

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