@jimquery

Как разобрать все значения параметра командной строки в python?

Привет.
Пишу скрипт, который запускается сторонним приложением с уже заданными в определённом формате параметрами.

Пример скрипта, с использованием библиотеки argparse:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import argparse

def create_parser ():
    parser = argparse.ArgumentParser()
    parser.add_argument('--allow_ips', nargs='*')

    return parser

if __name__ == '__main__':
    parser = create_parser()
    namespace = parser.parse_args()

    print (namespace)


Примеры вызова скрипта:
python ./script.py --allow_ips=
python ./script.py --allow_ips=192.160.0.10
python ./script.py --allow_ips=192.160.0.10 192.160.0.11 192.160.0.12

Т.е. количество значений параметра allow_ips может быть 0 и больше.
Первые два вызова выполняются корректно, третий вызов выбрасывает исключение:

error: unrecognized arguments: 192.160.0.11 192.160.0.12

Если вместо символа "=" использовать пробел, то все параметры передаются верно, но стороннее приложение передаёт параметры именно в таком формате.
Как можно указать для библиотеки использовать нужный разделитель при таком вызове?
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
InterVi
@InterVi
Fullstack Developer
Про разделитель не знаю, попробуй использовать parse_known_args.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы