当参数不在选项后面时,python getopt模块引发错误

我有一段代码可以处理命令行参数。


def parse_cmd_args():

    input_path = None

    output_name = 'out.flv.txt'

    is_detail = False

    try:

        opts, args = getopt.getopt(sys.argv[1:], "hi:o:d")

    except getopt.GetoptError:

        print 'Usage:'

        print 'parse_flv -i input_path -o [output_name]'

        sys.exit()

    for op, value in opts:

        if op == '-i':

            input_path = value

        elif op == '-o':

            output_name = value

        elif op == '-d':

            is_detail = True

        elif op == '-h':

            print 'Usage:'

            print 'parse_flv -i input_path [-o output_name]'

            sys.exit()

    return os.path.abspath(input_path), output_name, is_detail

如果我输入这样的命令without a option symbol '-':


 python parse_flv.py s

它将引发错误。


我的问题:


如何使用getopt模块处理不带'-i'类似选项的参数。谢谢


慕仙森
浏览 200回答 2
2回答

白猪掌柜的

在您的代码中,参数s位于从args返回的列表中getopt.getopt()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python