Найти - Пользователи
Полная версия: argparse взаимоисключающии ключи
Начало » Python для экспертов » argparse взаимоисключающии ключи
1
agryn
Нужно прочитать список неких данных (например электронок) с командной строки:
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:])
pyuser
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()
PooH
Mutual exclusion
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB