是否可以在optparse中选择强制性选项?

时间:2011-01-04 11:08:20

标签: python optparse

是否可以在optparse中选择强制性选项?

3 个答案:

答案 0 :(得分:20)

我之前发表了评论,但鉴于许多其他答案都说No, not possible,请按以下步骤操作:

parser = OptionParser(usage='usage: %prog [options] arguments')
parser.add_option('-f', '--file', 
                        dest='filename',
                        help='foo help')
(options, args) = parser.parse_args()
if options.filename is None:   # if filename is not given
    parser.error('Filename not given')

这使得-f成为强制性的。

使用argparse确实是另一种选择,但这并不意味着您也无法在optparse中执行此操作。

答案 1 :(得分:8)

选项是可选的:-)如果您需要强制执行某些操作,请使用argparse并设置位置参数。

http://docs.python.org/dev/library/argparse.html

答案 2 :(得分:2)

不,你不能。要么你可以使用argparse,要么使用optparse模块得到选项值,并明确检查是否定义了optionvalue(就像在optparse中将它设置为某些默认设置,如None,并检查不是None),如果是未定义,请致电sys.exit(),要求用户提供该选项。