コメントで述べたように、引数のリストを単一の文字列に変換するsubprocess
(ドキュメント ページには記載されていません) が付属しています。list2cmdline
ソース ドキュメントによると、list2cmdline
主に Windows で使用されます。
Windows の場合: Popen クラスは CreateProcess() を使用して、文字列を操作する子プログラムを実行します。args がシーケンスの場合、list2cmdline メソッドを使用して文字列に変換されます。すべての MS Windows アプリケーションがコマンド ラインを同じように解釈するわけではないことに注意してください。list2cmdline は、MS C ランタイムと同じ規則を使用するアプリケーション用に設計されています。
それにもかかわらず、それは他の OS でも十分に使用できます。
編集
逆の操作 (つまり、コマンド ラインを適切にトークン化された引数のリストに分割する) が必要な場合は、 のドキュメントにshlex.split
示されているように、関数を使用する必要があります。subprocess
>>> help(subprocess.list2cmdline)
Help on function list2cmdline in module subprocess:
list2cmdline(seq)
Translate a sequence of arguments into a command line
string, using the same rules as the MS C runtime:
1) Arguments are delimited by white space, which is either a
space or a tab.
2) A string surrounded by double quotation marks is
interpreted as a single argument, regardless of white space
contained within. A quoted string can be embedded in an
argument.
3) A double quotation mark preceded by a backslash is
interpreted as a literal double quotation mark.
4) Backslashes are interpreted literally, unless they
immediately precede a double quotation mark.
5) If backslashes immediately precede a double quotation mark,
every pair of backslashes is interpreted as a literal
backslash. If the number of backslashes is odd, the last
backslash escapes the next double quotation mark as
described in rule 3.