我现在正在做的只是检查args长度,如果是0,告诉用户键入-h。
有更好的方法吗? 感谢
答案 0 :(得分:15)
你可以使用optparse就可以了。您不需要使用argparse。
if options.foo is None: # where foo is obviously your required option
parser.print_help()
sys.exit(1)
答案 1 :(得分:4)
从您的问题中不清楚您是否正在使用(已弃用)optparse模块或其替换模块argparse。假设后者,那么只要您至少有一个位置参数,如果没有提供参数(或参数不足),脚本将打印出一条用法消息。
这是一个示例脚本:
import argparse
parser = argparse.ArgumentParser(description="A dummy program")
parser.add_argument('positional', nargs="+", help="A positional argument")
parser.add_argument('--optional', help="An optional argument")
args = parser.parse_args()
如果我没有参数运行它,我得到这个结果:
usage: script.py [-h] [--optional OPTIONAL] positional [positional ...]
script.py: error: too few arguments
答案 2 :(得分:4)
感谢@forkchop提示提示解析器.print_help()!!!
然后我觉得它可能是这样的?
import optparse
parser = optparse.OptionParser()
...
options, remainder = parser.parse_args()
if len(sys.argv[1:]) == 0:
print "no argument given!"
parser.print_help()
答案 3 :(得分:3)
以下是我之前处理此方法的方法:
import optparse
parser = optparse.OptionParser()
...
if len(sys.argv) == 1: # if only 1 argument, it's the script name
parser.print_help()
exit()
答案 4 :(得分:1)
查看http://docs.python.org/library/optparse.html
它应该执行用户通常期望的命令行应用程序 - 当给出-h
标志时,它将显示使用帮助。