Как лучше всего анализировать аргументы командной строки?

Этот ответ предлагает 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

2022-11-14T05:15:03+00:00
Вопросы с похожей тематикой, как у вопроса:

Как лучше всего анализировать аргументы командной строки?