当没有给出参数时,Optparse-print用法帮助

时间:2011-11-15 00:16:45

标签: python

我现在正在做的只是检查args长度,如果是0,告诉用户键入-h。

有更好的方法吗? 感谢

5 个答案:

答案 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标志时,它将显示使用帮助。