Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2011 10:42:19

FroL
От:
Зарегистрирован: 2011-06-21
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

optparse и пустой ключ

Есть простейший код:

from optparse import OptionParser

parser = OptionParser()
parser.add_option("-f", "--file", dest = "file")

(options, args) = parser.parse_args()

print options.file
Когда с ключом подаешь параметр все нормально:
# python cli.py -f name
name

Но когда ключ пустой конечно же выскакивает ошибка:
usage: cli.py
cli.py: error: -f option requires an argument

Как мне поймать эту ошибку и вывести свое предупреждение?



Офлайн

#2 Окт. 15, 2011 12:44:03

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

optparse и пустой ключ

optparse устаревший модуль, в дальнейшем он будет удалён, вместо него используйте argparse:

# -*- coding: utf-8 -*-
import argparse

parser = argparse.ArgumentParser(description='About on this programm')
#nargs='?' - разрешает использовать -f без парамметров
parser.add_argument('-f', '--file', nargs='?', dest='file')
args = parser.parse_args()
# Проверяем на наличие аргументов
if args.file:
print args.file
else:
print "Error message"



Офлайн

#3 Окт. 15, 2011 13:42:37

FroL
От:
Зарегистрирован: 2011-06-21
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

optparse и пустой ключ

Спасибо за ответ, но у меня версия питона 2.4.3, а модуль argparse идет с версией 3.2



Офлайн

#4 Окт. 15, 2011 16:40:40

lavrton
От:
Зарегистрирован: 2010-11-13
Сообщения: 35
Репутация: +  1  -
Профиль   Адрес электронной почты  

optparse и пустой ключ

Может проще ручная манипуляция с sys.argv?



Отредактировано (Окт. 15, 2011 16:52:07)

Офлайн

#5 Окт. 15, 2011 17:56:05

FroL
От:
Зарегистрирован: 2011-06-21
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

optparse и пустой ключ

Да вот надо именно с ключа( - в моем понимании руками проще, но требуют именно ключи.



Офлайн

#6 Окт. 16, 2011 08:54:27

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

optparse и пустой ключ

FroL
Спасибо за ответ, но у меня версия питона 2.4.3, а модуль argparse идет с версией 3.2
Ну можно же установить его, http://pypi.python.org/pypi/argparse



Офлайн

#7 Окт. 16, 2011 11:50:46

FroL
От:
Зарегистрирован: 2011-06-21
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

optparse и пустой ключ

Большое спасибо) Все заработало



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version