Можно ли сделать опцию в optparse обязательной?
Можно ли сделать опцию в optparse обязательной?
3 ответа
Я разместил комментарий ранее, но, учитывая, что многие другие ответы говорят 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
также.
Опция по определению необязательна:-) Если вам нужно сделать что-то обязательное, используйте argparse
и установить позиционный аргумент.
Нет, ты не можешь. Либо вы можете использовать argparse
и или вы получаете значение параметра с помощью модуля optparse и явно проверяете, определено ли значение параметра (как в optparse, установите для него значение по умолчанию, например None, и проверяете, не является ли None), и если оно не определено, вызывайте sys.exit()
прося пользователей предоставить эту опцию.