Как лучше всего анализировать аргументы командной строки?
Этот ответ предлагает optparse
, который подходит для более старых версий Python. Для Python 2.7 и выше argparse
заменяет optparse
. См. this answer для получения дополнительной информации.
Как отмечали другие люди, вам py лучше использовать optparse, а py не getopt. getopt в значительной command-line-arguments степени представляет собой command-line-args взаимно-однозначное отображение command-line-args стандартных функций библиотеки py C getopt(3) и не очень удобен python-shell в использовании.
optparse, хотя python-shell и является немного более python-interpreter подробным, гораздо лучше pythonic структурирован и проще для python последующего расширения.
Вот python-shell типичная строка для добавления command-line-arguments опции в ваш парсер:
parser.add_option('-q', '--query',
action="store", dest="query",
help="query string", default="spam")
Это говорит py само за себя; во время обработки python-shell он примет -q или --query command-line-parsing в качестве параметров, сохранит command-line-args аргумент в атрибуте с именем command-line-args query и имеет значение по command-line-arguments умолчанию, если вы его не command-line-parsing укажете. Это также является pythonic самодокументируемым, поскольку python-interpreter вы объявляете аргумент справки python (который будет использоваться python-shell при запуске с -h/--help) прямо command-line здесь с опцией.
Обычно вы command-line-arguments анализируете свои аргументы command-line-arguments с помощью:
options, args = parser.parse_args()
Это по умолчанию py будет анализировать стандартные python аргументы, переданные сценарию command-line (sys.argv[1:])
В файле options.query python-shell будет установлено значение, которое python вы передали сценарию.
Вы создаете py парсер, просто выполняя
parser = optparse.OptionParser()
Это command-line-parsing все основы, которые вам нужны. Вот python-interpreter полный скрипт Python, который python-interpreter показывает это:
import optparse
parser = optparse.OptionParser()
parser.add_option('-q', '--query',
action="store", dest="query",
help="query string", default="spam")
options, args = parser.parse_args()
print 'Query string:', options.query
5 строк Python, которые command-line покажут вам основы.
Сохраните py его в файле sample.py и запустите pythonic один раз с помощью
python sample.py
и один py раз с
python sample.py --query myquery
Кроме того, вы обнаружите, что command-line-arguments optparse очень легко расширяется. В command-line-parsing одном из моих проектов я command-line-arguments создал класс Command, который pythonic позволяет легко вкладывать python подкоманды в дерево команд. Он command-line-arguments активно использует optparse py для объединения команд. Это pythonic не то, что я могу легко объяснить command-line-arguments в нескольких строках, но command-line не стесняйтесь browse around in my repository для основного python-interpreter класса, а также a class that uses it and the option parser
python
command-line
command-line-arguments
Как лучше всего анализировать аргументы командной строки?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.