2

我设置了一个 subprocess.Popen 来通过 pdflatex 生成一个 pdf。代码片段:

process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
output, err = process.communicate()

print output
print err

它工作得很好,但问题是错误消息。如果 pdflatex 无法生成文件,例如我"Fatal error occured, no output PDF file produced!"在打印输出的末尾收到消息,我仍然会被"None"打印为错误。

任何见解将不胜感激

编辑:添加stderr=subprocess.PIPE帮助。我不再收到"None"了,但是无论 pdf 的生成是否成功,我都会收到一条空白错误消息。现在看起来像这样:

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
same as above
4

1 回答 1

1

试试这个:</p>

fout = open("temp.txt", "w")
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=fout, shell=True)

我更喜欢subprocess.check_output(),更方便。

于 2014-10-23T08:30:04.097 回答