我有一本字典,我想使用项目 (key,value) 生成单个字符串,我将在命令行上将参数传递给另一个脚本。
片段进一步说明:
args = { 'arg1': 100, 'arg2': 234 }
我想创建字符串:
--arg1=100 --arg2=234
从字典。
这样做的天真(昂贵)的方法是遍历字典中的项目,在我进行的过程中构建字符串。
有没有更蟒蛇的方式来做到这一点?
我有一本字典,我想使用项目 (key,value) 生成单个字符串,我将在命令行上将参数传递给另一个脚本。
片段进一步说明:
args = { 'arg1': 100, 'arg2': 234 }
我想创建字符串:
--arg1=100 --arg2=234
从字典。
这样做的天真(昂贵)的方法是遍历字典中的项目,在我进行的过程中构建字符串。
有没有更蟒蛇的方式来做到这一点?
你需要一个循环,但你可以简洁地做到这一点:
" ".join("--%s=%s" % item for item in args.iteritems())
(对于 Python 2。对于 Python 3,更改iteritems
为items
)
' '.join('--%s=%s' % (k, v) for (k, v) in args.items())
由于您打算将它传递给另一个脚本并且可能使用subprocess
模块这样做:根本不要创建字符串!
args = ['/path/to/your/script'] + ['--%s=%s' % item for item in args.iteritems()]
您可以将此数组传递给subprocess.call()
(或.Popen()
等),并且通过不使用参数字符串,您可以确保即使是空格、引号等也不会导致任何问题。