2017-05-04 13 views
1

私はサブプロセスを通してcmdを実行し、引数のリストを渡そうとしています.1つの引数は、追加の引数を含むリストです。これをサブプロセスにどのように渡すことができますか?Pythonのサブプロセス、リストを渡す方法は?

例:

my_list = ['arg1', 'arg2', 'arg3'] 
subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", my_list ]) 

これは可能ですか?

答えて

1

いずれかのリストを展開する*を使用します。

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag", *my_list]) 

それとも+と一緒に二つのリストを連結します。

subprocess.run(["./some.sh", "--flag", "some_arg", "--another_flag"] + my_list) 

+は(例えば、ない発電機)のリスト上で動作します。

*の「アンパック」動作は、公式チュートリアルhereに記載されていますが、新しいリストを作成するのではなく、関数呼び出しでのみ使用することに対処しています。それは関係なく動作します。

+0

すばらしい説明、ありがとう。 – user797963

関連する問題