argparse python modul行为的解释:资本占位符来自哪里?

Auf*_*ind 4 python argparse

我试图写一个命令行界面(首次),并阅读了约后argparse,optparsegetopt我选择argparse,因为若干建议这里SO和elswhere净.根据van Rossum先生的一些建议,我连接了我的第一个命令行界面,如下所示:

def main(argv=None):
    if argv is None:
        argv = sys.argv
    desc = u'some description'
    parser = argparse.ArgumentParser(description=desc)

    parser.add_argument('-s', '--search', help='Search for someone.')
    parser.add_argument('-c', '--do_something_else', help='Do something else.')

    args = parser.parse_args()
    print args

if __name__ == '__main__':
    sys.exit(main())
Run Code Online (Sandbox Code Playgroud)

python myscript.py -h结果:

usage: dblp.py [-h] [-s SEARCH] [-c DO_SOMETHING_ELSE]

some description

optional arguments:
  -h, --help            show this help message and exit
  -s SEARCH, --search SEARCH
                        Search for someone.
  -c DO_SOMETHING_ELSE, --do_something_else DO_SOMETHING_ELSE
                        Do something else.
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题是:为什么SEARCHDO_SOMETHING_ELSE用大写字母书写?第二个问题是:我打破任何标准吗?有没有更好的方法(我可以学习一个很好的现实世界的例子)如何使用python构建干净和有用的命令行界面?以及是否有缺陷应该避免,写CMD接口时?

Amb*_*ber 7

大写字母项目只是价值占位符; 他们是从选项的目的地获取的.您可以通过以下metavar=参数指定备用占位符add_argument:

http://docs.python.org/dev/library/argparse.html#metavar