从python执行shell命令

Vai*_*han 3 python subprocess append

我正在尝试编译一组行并执行它们并将输出附加到文本文件.我没有写同样的东西,而是使用python脚本在后台编译和执行.

import subprocess
subprocess.call(["ifort","-openmp","mod1.f90","mod2.f90","pgm.f90","-o","op.o"])
subprocess.call(["nohup","./op.o",">","myout.txt","&"])
Run Code Online (Sandbox Code Playgroud)

该程序pgm.f90正在使用ifort编译器进行编译,但是没有附加输出myout.txt.相反,它是附加输出,即使在python脚本中指定后nohup.out,程序也不在后台运行"&".

我在这里犯了什么明显的错误?

提前致谢

Sau*_*tro 5

您可以通过使用Popen()参数来调用子进程,就好像您在shell中一样shell=True:

subprocess.Popen("nohup ./op.o > myout.txt &", shell=True)
Run Code Online (Sandbox Code Playgroud)