これが実際ほどトリッキーになるとは思いませんでしたが、ここにいます。Python で Nautilus スクリプトを作成して、1 つ以上の画像を選択して右クリックするだけで 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 を試してみましたが、これに対する適切な解決策はあまりないようです。少なくとも私が見つけたものではありません。何か案は?