当我用" -v args"打电话给Pandoc时例如:'-v title =;wartość'''在Python脚本中,我获得没有标题的输出。:(
示例:手动键入pandoca(在终端):
/usr/bin/pandoc /home/user/program/content.md -V title="Wartość"
-V authors="Jerry" --output=/home/user/program/outputs/book_22.pdf
它有效:)输出文件:pandoc输出在终端中手动pandoc时
但是,当我在Python中运行相同的命令(致电Pandoc):
subprocess.call(['/usr/bin/pandoc', '/home/user/program/content.md', '-V title="Wartość", -V authors="Jerry" ', '--output=/home/user/program/outputs/book_33.pdf'])
输出文件: pandoc输出我从Python脚本致电他时
如何修复它?
您的假设是您在python中运行"同一命令"的假设是不正确的。当应该分开时,您将参数合并为一个字符串。
subprocess.call(['/usr/bin/pandoc', '/home/user/program/content.md',
'-V', 'title="Wartość"', '-V', 'authors="Jerry"',
'--output=/home/user/program/outputs/book_33.pdf'])
将命令行转换为适合subprocess.call()
的列表的一种简单方法是shlex.split()
。