Je ne pensais pas que ce serait aussi difficile que cela s'est avéré être, mais je suis ici. J'essaie d'écrire un script Nautilus en Python pour télécharger une ou plusieurs images sur Imgur en sélectionnant et en cliquant dessus avec le bouton droit de la souris. Cela fonctionne assez bien avec des images simples et des images multiples - tant qu'elles ne contiennent aucun espace. En fait, vous pouvez télécharger une seule image contenant des espaces, mais pas plusieurs.Échapper des espaces dans les chemins en utilisant le script nautilus
Le problème est que NAUTILUS_SCRIPT_SELECTED_FILE_PATHS renvoie tous les fichiers et répertoires sélectionnés en tant que chaîne séparée par des espaces. Ainsi, par exemple, il pourrait ressembler à ceci:
print os.environment['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS']
/home/nevon/Desktop/test image.png /home/nevon/Desktop/test.jpg
Ce que je besoin est un moyen de -soit en bash ou Python- échapper aux espaces dans le chemin - mais pas les espaces qui délimitent les différents éléments. Soit cela, ou un moyen de mettre des guillemets autour de chaque élément.
La solution ultime serait si je pouvais le faire dans bash et ensuite envoyer les éléments en tant qu'arguments séparés à mon script python. Quelque chose comme:
python uploader.py /home/nevon/Desktop/test\ image.png /home/nevon/Desktop/test.jpg
J'ai essayé RTFM'ing, mais il ne semble pas y avoir beaucoup de bonnes solutions pour cela. Au moins pas que j'ai trouvé. Des idées?
'python uploader.py '... test image.png' ...' mais cela appartient à superuser.com – msw
ou un test image 'mv 'test image.png'. png'. Oui, vous pouvez utiliser des espaces dans les noms de fichiers, mais personne n'a dit que ce serait amusant en toutes circonstances. – msw
Je sais que vous pouvez citer les arguments pour autoriser les espaces, mais comment ferais-je cela quand $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS me donne juste une liste délimitée par des espaces? –