在python中以交互方式执行shell代码

时间:2013-04-01 14:39:42

标签: python console

我使用

从python中调用pdflatex
executeCode = 'pdflatex -shell-escape "' + packageName + '.tex"'
result = os.system(executeCode)

但是,LaTeX文档可能有错误,在这种情况下,pdflatex会询问键盘输入。 对于python,这与无限循环相同。在PyScripter中我甚至无法阻止python。我必须杀死pdflatex。

现在我需要两件事 1.我想看看pdflatex的输出 2.我需要在控制台上与pdflatex进行交互

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您使用--interaction nonstopmode选项,pdflatex将不会停止并要求输入。

使用subprocess模块为您提供了有关如何处理该过程的更多选项。

subprocess.call(['pdflatex', '--interaction', 'nonstopmode', '-shell-escape', packageName + '.tex'])

您可以使用stdoutstderr选项将这些输出重定向到管道或文件。

如果要捕获程序的输出,请改用subprocess.check_output()