4

重複の可能性:
shlex.split の逆は何ですか?

argvコマンドラインの単一の文字列など、コマンドラインパラメータのリストを変換するにはどうすればよいですか?

" ".join(argv)スペースを含む文字列を正しくエスケープしないため、正しい解決策ではありません。

例:./test.py -v --simulate --action removePage --title "AAA BBB"

これを試すと、最後の引数はAAA BBB引用符なしですが、join を使用してコマンド ラインを再構築しようとすると、間違った結果が得られます。

注: コマンド ラインを文字列として取得できることはわかっていますが、私の場合はそれに頼ることができません。引数のリストを適切なコマンド ラインに変換するソリューションが必要です。

4

2 に答える 2

2

Python 3.3 では、以下を使用して試すことができますshlex.quote(申し訳ありませんが、確認できません)。

' '.join(shlex.quote(arg) for arg in argv)
于 2012-11-08T17:36:14.227 に答える
0

無償の引用を気にしないのであれば、次のように思います。

" ".join('"%s"'%x.strip().replace('"',r'\"') for x in lst)
于 2012-11-08T17:26:36.767 に答える