在搜索一个没有成功之后,我决定制作自己的脚本,将选定的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/
),则该脚本无效。
有什么方法可以解决这个问题吗?
答案 0 :(得分: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" ])