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

标签 python system cmd

我正在编写一个使用应用程序 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/

相关文章:

c++ - Windows 命令行历史记录

windows - CMD Echo 命令只保留最后一行文本

Python + lighttpd + CGI : any web frameworks?

Python 3.x WSGI 测试框架

system - 将表示从一个坐标系旋转到另一个坐标系的四元数转换

windows - 我的 Windows 命令提示符属性保存在哪里

vbscript - vbs cmd 路径空间

python - 通过执行 python 脚本隐藏控制台

Python错误: Boolean Series key will be reindexed to match DataFrame index

c - 信号处理代码的 Glib 哈希表问题