10

optparseのオプションを必須にすることは可能ですか?

4

3 に答える 3

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

于 2011-01-04T11:18:35.057 に答える
8

オプションはdefeinitionによるオプションです:-)何かを必須にする必要がある場合はargparse、位置引数を使用して設定します。

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

于 2011-01-04T11:09:43.217 に答える
2

いいえ、できません。を使用するかargparse、optparseモジュールを使用してオプション値を取得し、optionvalueが定義されているかどうかを明示的に確認し(optparseのように、Noneなどのデフォルトに設定してNoneでないことを確認します)、定義されていない場合は、sys.exit()ユーザーにそのオプションを提供するように依頼します。

于 2011-01-04T11:14:28.963 に答える