Python argparse: "непризнанные аргументы"
Я пытаюсь использовать свою программу с опцией командной строки. Вот мой код:
import argparse def main(): parser = argparse.ArgumentParser() parser.add_argument("-u","--upgrade", help="fully automatized upgrade") args = parser.parse_args() if args.upgrade: print "Starting with upgrade procedure" main()
Когда я пытаюсь запустить свою программу с терминала ( python script.py -u
), я ожидаю получить сообщение Starting with upgrade procedure
, но вместо этого получаю сообщение об ошибке unrecognized arguments -u
.
- Отсутствует аргумент argpse в python 3
- Python: запустить функцию из командной строки
- Командная строка Windows Не работает с Python
- Как я могу отлаживать POST-запросы с помощью BaseHTTPServer / SimpleHTTPServer python?
- Отправка электронной почты в Python из исполняемого файла
Ошибка, которую вы получаете, заключается в том, что -u
ожидает некоторое значение после нее. Если вы используете python script.py -h
вы найдете его в инструкции использования, говорящей [-u UPGRADE]
.
Если вы хотите использовать его как boolean или flag (true, если используется -u
), добавьте дополнительное action
параметра:
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action="store_true")
action
– Основной тип действия, которое необходимо предпринять, когда этот аргумент встречается в командной строке
При action="store_true"
, если указан параметр -u
, значение true присваивается args.upgrade
. Не указывая на это, подразумевается False.
Источник: документация Python argparse
В настоящее время ваш аргумент требует, чтобы для него было передано значение.
Если вы хотите -u
как вариант вместо этого, используйте action='store_true'
для аргументов, которые не нуждаются в значении.
Пример –
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action='store_true')
Для булевых аргументов используйте action = "store_true":
parser.add_argument("-u","--upgrade", help="fully automatized upgrade", action="store_true")
См .: https://docs.python.org/2/howto/argparse.html#introducing-optional-arguments
- Интерактивная оболочка python в 16 раз быстрее командной строки – что случилось?
- Пауза в Python
- Bash: переменная в одиночной кавычке
- Выполнение командной строки в другой папке
- Как преобразовать аргументы командной строки в python в словарь?
- Как узнать, был ли запущен скрипт python с использованием опции -m интерпретатора?
- Аргументы командной строки в импортированных модулях Python
- в python получить вывод системной команды в виде строки
- Как узнать, запущена ли программа из командной строки или из Интернета?