我设置了一个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
答案 0 :(得分:1)
试试这个:
fout = open("temp.txt", "w")
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=fout, shell=True)
我更喜欢subprocess.check_output(),更方便。