【发布时间】:2013-09-18 23:14:41
【问题描述】:
在 Perl 中,可以使用 Getopt::Long 轻松将多个 key=value 对读入一个变量 (a hash)(参见 here)
基本上是这样的
GetOptions ("define=s" => \%defines);
And on command line: <prog> --define os=linux --define vendor=redhat
我一直在寻找 Python 中的等价物,但到目前为止还没有找到 [argparse] 没有从 bash shell 中获取字典很容易看到 type=dict in argparse.add_argument() 。尽管我可以通过读取参数并以编程方式从中创建字典来解决此问题,但我只是想知道一种干净简单的方法(就像 Perl 一样)
【问题讨论】:
-
argparse样式输入更像:python stack18800328.py --os=linux --vendor=redhat。但这需要提前知道可能的“关键”值。 -
define作为append中的argparse参数,后跟这个衬里是我能想到的最紧凑的方式:args.define = {k:v for k,v in (a.split('=') for a in args.define)}
标签: python dictionary hash command-line