argparse python 模块的文档虽然我敢肯定,但对于我小小的初学者大脑来说,现在掌握的内容太多了。我不需要在命令行上进行数学运算,也不需要干预屏幕上的格式行或更改选项字符。我想要做的就是 “如果 arg 是 A,则执行此操作,如果 B 执行此操作,如果以上都没有显示帮助并退出” 。
我对原始问题的理解是双重的。首先,就最简单的 argparse 示例而言,我很惊讶我在这里没有看到它。当然,为了简单起见,这也是开销很小的开销,但它可能会让你开始。
import argparse parser = argparse.ArgumentParser() parser.add_argument("a") args = parser.parse_args() if args.a == 'magic.name': print 'You nailed it!'
但是现在需要这个位置参数。如果你在调用这个程序时忽略它,你会得到一个关于缺少参数的错误。这使我进入原始问题的第二部分。Matt Wilkie 似乎想要一个没有命名标签的 可选 参数( –option 标签)。我的建议是修改上面的代码如下:
... parser.add_argument("a", nargs='?', default="check_string_for_empty") ... if args.a == 'check_string_for_empty': print 'I can tell that no argument was given and I can deal with that here.' elif args.a == 'magic.name': print 'You nailed it!' else: print args.a
很可能有一个更优雅的解决方案,但这很有效并且是极简主义的。