Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2014 19:30:05

agryn
От: Украина
Зарегистрирован: 2011-12-14
Сообщения: 189
Репутация: +  0  -
Профиль   Отправить e-mail  

argparse взаимоисключающии ключи

Нужно прочитать список неких данных (например электронок) с командной строки:

some_util -l email1@x.com email2@x.com
или из файла
some_util -L email.lst
Как сделать чтобы не можно было использовать одновременно два ключа -l и -L в argparse
import argparse
import sys
def createCLParser():
    parser = argparse.ArgumentParser()
    parser.add_argument('-l', '--list', nargs='+', help='list from comand line')
    parser.add_argument('-L', '--list-file', type=argparse.FileType(), help='list from file')
    return parser
if __name__ == '__main__':
    parser = createCLParser()
    namespace = parser.parse_args(sys.argv[1:])

Отредактировано agryn (Авг. 5, 2014 20:35:07)

Офлайн

#2 Авг. 6, 2014 02:21:35

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

argparse взаимоисключающии ключи

import argparse
import sys
def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-l', '--list', nargs='+',
                        help='list from comand line')
    parser.add_argument('-L', '--list-file', type=argparse.FileType(),
                        help='list from file')
    opt = parser.parse_args()
    if opt.list and opt.list_file:
        parser.print_help()
        sys.exit(1)
    return opt
if "__main__" == __name__:
    opt = parse_args()



Офлайн

#3 Авг. 6, 2014 05:16:10

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

argparse взаимоисключающии ключи

Mutual exclusion



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version