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

Ale*_*lex 10 python optparse

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

use*_*312 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')
Run Code Online (Sandbox Code Playgroud)

这使得-f强制性.

argparse确实使用是另一种选择,但这并不意味着你也不能这样做optparse.

  • 好吧,这就是我的意思( - optparse将它设置为默认值,如None,并检查不是None),我认为应该提供一个例子.谢谢.顺便说一句,这不是由optparse完成的,你是通过检查程序中的选项值来完成的. (2认同)

gru*_*czy 8

选项是通过默认选项:-)如果您需要强制执行某些操作,请使用argparse并设置位置参数.

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