我正在编写一个使用应用程序 pdftk 的 Python 脚本几次执行一些操作。
例如,我可以在 windows 命令行 shell 中使用 pdftk 来合并两个 pdf 文件,如下所示:
pdftk 1.pdf 2.pdf cat output result.pdf
我想在我的 Python 脚本中间执行上述操作。这是我尝试这样做的方法:
os.system('pdftk 1.pdf 2.pdf cat output result.pdf')
上面的 pdftk 命令在 Windows shell 中运行得很好。但是,当我尝试使用 Python 的 os.system()
执行它时,它无法打开输入文件(1.pdf 和 2.pdf)。这是我在尝试使用 Python 的 os.system()
执行命令时从 pdftk 获得的错误消息:
Error: Failed to open PDF file: 1.pdf
Error: Failed to open PDF file: 2.pdf
为什么会这样?我该如何解决?
请注意:我知道有更好的方法可以用 Python 合并 pdf 文件。我的问题不是关于合并 pdf 文件。那只是一个玩具示例。我想要实现的是能够使用 Python 执行 pdftk 和其他命令行应用程序。
最佳答案
您可以使用 subprocess
避免(潜在的)引用、转义等问题:
import subprocess
subprocess.call(['pdftk', '1.pdf', '2.pdf', 'cat', 'output', 'result.pdf'])
它与 os.system
一样易于使用,如果您动态构建参数列表则更容易。
关于Python:无法使用 os.system() 打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4881051/