169 похожих чатов

Парни привет помогите разобраться новичку дело вот в чем, вот функция: ===================== import optparse def

getArguments():
parser = optparse.OptionParser()
parser.add_option("-i", "--interface", dest="interface", help="Choose interface <>")
parser.add_option("-m", "--masc", dest="new_mac", help="Mac adress <>")
(options, arguments) = parser.parse_args()
if not options.interface:
parser.error("[--->] Must choose interface, use --help ")
elif not options.new_mac:
parser.error("[--->] Must choose Mac adress, use --help ")
return (options.interface, options.new_mac)

=====================
я делаю прогу при запуске которой я даю 2 параметра, вот в таком формате:

prog.py -i vasea -m kolea

я хочу проверить есть ли аргументы, код функции выше
дальше я начинаю тестить, и вот что получается:

если я запускаю : " prog.py -i етх0 " -> то есть даю тока первый параметр и значение для него
то обрабатывается ошибка и выскакивает сообшение из моего огработчика parser.error( .... )

а если я запускаю : " prog.py -i " -> то есть вставляю имя параметра (у меня их 2: -i -m) но не даю значение для етого параметра ТО ошибка обрабатывается НО не появляется сообшение из моего огработчика parser.error( .... )

а мне надо что в случае запуска без параметров или запуск с параметром но без значения для параметра при обработки ошибки высвечивался текст ошибки из моего обработчика parser.error( .... )


может кто подсказать ка реализовать мне это ???

2 ответов

13 просмотров

Ты проверяешь наличие параметра, но не проверяешь наличие аргумента у параметра. Посмотри инструкцию как получать аргумент параметра и проверяй его на пустоту или соответствие определенному шаблону.

argparse?

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Карта сайта