2

辞書があり、アイテム(key、value)を使用して単一の文字列を生成し、コマンドラインで別のスクリプトに引数を渡します。

Snippetはさらに次のことを示しています。

args = { 'arg1': 100, 'arg2': 234 }

文字列を作成したい:

--arg1=100 --arg2=234

辞書から。

それを行うための素朴な(高価な)方法は、辞書の項目をループして、私が進んだときに文字列を作成することです。

これを行うためのよりPython的な方法はありますか?

4

3 に答える 3

4

ループが必要ですが、簡潔に行うことができます。

" ".join("--%s=%s" % item for item in args.iteritems())

(Python 2の場合。Python3の場合は、に変更iteritemsitemsます)

于 2012-05-13T20:09:25.360 に答える
2
' '.join('--%s=%s' % (k, v) for (k, v) in args.items())
于 2012-05-13T20:09:05.690 に答える
2

別のスクリプトに渡す予定であり、おそらくsubprocessモジュールを使用して渡す予定なので、文字列を作成しないでください。

args = ['/path/to/your/script'] + ['--%s=%s' % item for item in args.iteritems()]

この配列をsubprocess.call()(または.Popen()などに)渡すことができ、引数文字列を使用しないことで、スペースや引用符などでさえ問題が発生しないようにすることができます。

于 2012-05-13T20:12:43.280 に答える