Python:无法使用os.system()打开文件

sna*_*ile 6 python cmd system

我正在编写一个Python脚本,它使用应用程序pdftk几次来执行一些操作.

例如,我可以在windows命令行shell中使用pdftk来合并两个pdf文件,如下所示:

pdftk 1.pdf 2.pdf cat output result.pdf
Run Code Online (Sandbox Code Playgroud)

我想在我的Python脚本中执行上述操作.这是我尝试这样做的方式:

os.system('pdftk 1.pdf 2.pdf cat output result.pdf')
Run Code Online (Sandbox Code Playgroud)

上面的pdftk命令在Windows shell中完美运行.但是,当我尝试使用Python执行它时,它无法打开输入文件(1.pdf和2.pdf)os.system().这是我在尝试使用Python执行命令时从pdftk获得的错误消息os.system():

错误:无法打开PDF文件:1.pdf

错误:无法打开PDF文件:2.pdf

为什么会这样?我该如何解决?

请注意:我知道有更好的方法将pdf文件与Python合并.我的问题不是关于合并pdf文件.那只是一个玩具的例子.我想要实现的是使用Python执行pdftk和其他命令行应用程序的能力.

Dan*_*nga 3

您可以使用以下方法避免(潜在的)引用、转义等问题subprocess

import subprocess

subprocess.call(['pdftk', '1.pdf', '2.pdf', 'cat', 'output', 'result.pdf'])
Run Code Online (Sandbox Code Playgroud)

它与 一样易于使用os.system,如果您动态构建参数列表,甚至会更容易。