sys.argv это список, содержащий все аргументы, переданные скрипту в командной строке. sys.argv[0] это имя скрипта.
В основном,
import sys
print(sys.argv[1:])
Ответ 2
Каноническим решением в стандартной библиотеке является argparse (docs):
Вот пример:
from argparse import ArgumentParser
parser = ArgumentParser() parser.add_argument("-f", "--file", dest="filename", help="write report to FILE", metavar="FILE") parser.add_argument("-q", "--quiet", action="store_false", dest="verbose", default=True, help="don't print status messages to stdout")
args = parser.parse_args()
argparse поддерживает (среди прочего):
Несколько вариантов в любом порядке.
Короткие и длинные варианты.
Значения по умолчанию.
Генерация справочного сообщения по использованию.
Ответ 3
Просто пытаюсь найти argparse, который лучше по этим причинам.. по сути:
(скопировано по ссылке)
модуль argparse может обрабатывать позиционные и необязательные аргументы, в то время как optparse может обрабатывать только необязательные аргументы
argparse не догматичен в отношении того, как должен выглядеть ваш интерфейс командной строки - поддерживаются такие опции, как -file или /file, а также обязательные опции. Optparse отказывается поддерживать эти функции, предпочитая чистоту практичности.
argparse выдает более информативные сообщения об использовании, включая использование командной строки, определенное на основе ваших аргументов, и справочные сообщения как для позиционных, так и для необязательных аргументов. Модуль optparse требует, чтобы вы написали свою собственную строку использования, и не имеет возможности отобразить справку для позиционных аргументов.
argparse поддерживает действия, которые потребляют переменное количество аргументов командной строки, в то время как optparse требует, чтобы точное количество аргументов (например, 1, 2 или 3) было известно заранее
argparse поддерживает анализаторы, которые отправляют во вложенные команды, в то время как optparse требует настройки allow_interspersed_args и выполнения отправки анализатора вручную
И мой личный фаворит:
argparse позволяет указывать параметры типа и действия add_argument() с помощью простых вызываемых объектов, в то время как optparse требует взлома атрибутов класса, таких как STORE_ACTIONS или CHECK_METHODS, для правильной проверки аргументов