Я не думал, что это будет так сложно, как оказалось, но я здесь. Я пытаюсь написать скрипт Nautilus на Python для загрузки одного или нескольких изображений в Imgur, просто выбрав и щелкнув по ним правой кнопкой мыши. Он работает достаточно хорошо как с одиночными изображениями, так и с несколькими изображениями - при условии, что они не содержат пробелов. Фактически, вы можете загрузить одно изображение, содержащее пробелы, но не несколько.
Проблема в том, что NAUTILUS_SCRIPT_SELECTED_FILE_PATHS возвращает все выбранные файлы и каталоги в виде строки, разделенной пробелами. Так, например, это может выглядеть так:
print os.environment['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS']
/home/nevon/Desktop/test image.png /home/nevon/Desktop/test.jpg
Мне нужен способ - либо в bash, либо в Python - экранировать пробелы в пути - но не пробелы, которые разделяют разные элементы. Или это, или способ поставить кавычки вокруг каждого элемента.
Окончательное решение было бы, если бы я мог сделать это в bash и затем отправить элементы в качестве отдельных аргументов в мой скрипт на python. Что-то вроде:
python uploader.py /home/nevon/Desktop/test\ image.png /home/nevon/Desktop/test.jpg
Я пробовал RTFM'ing, но, кажется, не очень много хороших решений для этого. По крайней мере, не то, что я нашел. Есть идеи?