次のようなものが欲しいと思います:
$(python -c "import urllib, sys; print urllib.unquote(sys.argv[1])" "h%23g")
という結果になりh#gます。行にこれだけしかない場合は、というコマンドも実行しようとするh#gため、実際にはこれをより大きなコマンドの一部として使用していると思います。
お使いのバージョンの問題は、それsys.argv[0]が-cコマンドからのものであり、urllib.unquote('-c')単に を返すこと'-c'です。
のドキュメントからsys.argv:
-cインタープリターへのコマンド ライン オプションを使用してコマンドが実行された場合はargv[0]、文字列 に設定されます'-c'。
それをmanページの情報と組み合わせると(強調は私のものです):
-c command
実行するコマンドを指定します (次のセクションを参照)。これにより、オプション リストが終了します(次のオプションは引数としてコマンドに渡されます)。
したがって、 を使用すると-c、に提供される引数はスクリプトになるため、 には含まれず、追加の引数はインデックス 1 から始まる に追加されます。sys.argv[0]'-c'-csys.argvsys.argv