我正在尝试编写一个命令行界面(第一次),在阅读了 about 之后,argparse
我之所以选择这里是因为这里有一些关于 SO 和网络中其他地方的建议。根据 van Rossum 先生的一些建议,我将我的第一个命令行界面连接起来,如下所示:optparse
getopt
argparse
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())
这样做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.
所以我的第一个问题是:为什么SEARCH
和DO_SOMETHING_ELSE
用大写字母写?第二个问题是:我是否违反了任何标准?有没有更好的方法(或者我可以从中学习的一个很好的现实世界示例)如何使用 python 构建干净且有用的命令行界面?在编写 cmd 接口时是否应该避免一些陷阱?