JPG в PDF скрипт Nautilus (с использованием ImageMagick)

После безуспешного поиска я решил создать собственный скрипт для преобразования выбранных файлов 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/).

Есть ли способ, которым я мог бы это исправить?

1 ответ

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" ])
Другие вопросы по тегам