使用subprocess.Popen从python调用pandoc

use*_*795 3 python subprocess pandoc

我在使用python调用pandoc时遇到问题subprocess.Popen.这一切都在控制台中工作.这是代码.

# Test markdown file
here is just a simple markdown file.
Run Code Online (Sandbox Code Playgroud)

现在我使用的python代码filename是我的markdown文件的完整路径:

import subprocess
fileout = os.path.splitext(filename)[0] + ".pdf"
args = ['pandoc', filename, '-o', fileout]
subprocess.Popen(args)
Run Code Online (Sandbox Code Playgroud)

我也尝试了各种方法来捕获错误,但这不起作用.但是,在控制台中,一切正常:

pandoc '[filename]' -o '[fileout]'
Run Code Online (Sandbox Code Playgroud)

Sam*_*ton 5

这不回答你的问题(你可以特别想/需要调用使用subprocess.Popen pandoc)但对于Pandoc称为Python包装Pyandoc:见我的答案在这里.


ick*_*fay 3

这应该可以正常工作,但您可能需要等待它完成使用subprocess.check_call而不是subprocess.Popen直接使用:

subprocess.check_call(args)
Run Code Online (Sandbox Code Playgroud)

这也确保了它的成功完成。如果状态码不为0,则会抛出异常。