我正在尝试编写一个命令行界面(首次尝试),在阅读了有关argparse
,optparse
和getopt
的资料后,由于这里和其他地方都有几条建议,我选择了argparse
。根据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())
执行 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构建干净和有用的命令行界面?在编写命令行界面时,应该避免哪些陷阱?