2

我有一本字典,我想使用项目 (key,value) 生成单个字符串,我将在命令行上将参数传递给另一个脚本。

片段进一步说明:

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

我想创建字符串:

--arg1=100 --arg2=234

从字典。

这样做的天真(昂贵)的方法是遍历字典中的项目,在我进行的过程中构建字符串。

有没有更蟒蛇的方式来做到这一点?

4

3 回答 3

4

你需要一个循环,但你可以简洁地做到这一点:

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

(对于 Python 2。对于 Python 3,更改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 回答