Python。使用os.system()打开文件失败。

问题描述 投票:6回答:3

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

例如,我可以在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(). 这是使用Python的pdftk执行命令时得到的错误信息。os.system():

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

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

为什么会出现这种情况?如何解决这个问题?

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

python system cmd
3个回答
3
投票

你可以避免(潜在的)引号、转义等问题,使用 subprocess:

import subprocess

subprocess.call(['pdftk', '1.pdf', '2.pdf', 'cat', 'output', 'result.pdf'])

使用起来也很方便,就像 os.system如果你是动态地建立参数列表,就更容易了。


2
投票

你需要设置进程的当前工作目录。如果.pdf文件位于 /some/path/to/pdf/files/:

>>> os.getcwd()
'/home/vz0'
>>> os.chdir('/some/path/to/pdf/files/')

0
投票

确保你在同一个当前工作目录下。

另外,我发现使用 \\ 而不是 / 帮助我。

© www.soinside.com 2019 - 2024. All rights reserved.