0

当我在 Python 脚本中使用“-V args”调用 pandoc 时,例如:'-V title="Wartość"',我得到没有标题的输出..:(

示例:手动键入 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'])

输出文件: 当我从 python 脚本调用他时 pandoc 输出

如何解决?

4

1 回答 1

0

您在 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().

于 2016-12-28T13:43:39.273 回答