3

在搜索了一个但没有成功后,我决定制作自己的脚本,将选定的 JPEG 文件转换为一个 PDF。

这是代码(使用 Python 制作):

#!/usr/bin/env python
import os

n = " ".join(os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].splitlines())

os.system("convert " + n + " out.pdf")

此脚本的问题在于,如果您要转换的文件位于名称中有空格的目录中(比如说 ),它就不起作用/home/myuser/My Photos/1/

有什么办法可以解决这个问题吗?

4

1 回答 1

4
n = " ".join("'%s'" % f for f in os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].splitlines())

请记住清理您的文件名,否则恶意制作的名称可以使脚本在我们的机器上执行代码。

更好的是,使用subprocess模块而不是os.system().

subprocess.call ([ "convert" ] + os.environ["NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"].splitlines() + [ "out.pdf" ])
于 2012-09-03T17:03:55.333 回答