Одним из достоинств Python является то, что он поставляется в комплекте с батареями: он имеет богатую и адаптируемую стандартную библиотеку, что делает его выдающимся среди других диалектов программирования для написания контента для прямой линии. В любом случае, в случае, если вы сочиняете содержимое для строки заказа, то в этот момент вам также необходимо дать достойный интерфейс для строки заказа, который вы можете сделать с помощью библиотеки argparse на Python.
Что такое интерфейс прямой линии?
Интерфейс прямой линии заказа (иначе называемый CLI) – это способ взаимодействия с содержимым прямой линии. Python сопровождает несколько различных библиотек, которые позволяют вам составить интерфейс с прямой линией заказа для вашего содержимого, однако стандартным маршрутом для создания CLI на Python сейчас является библиотека Python argparse.
Библиотека Python argparse была выпущена как основной аспект стандартной библиотеки на Python 3.2 двадцатого февраля 2011 года. Она была представлена с Python Upgrade Proposition 389 и в настоящее время является стандартным методом для создания CLI на Python, как в 2.7, так и в 3.2+ формах.
Этот новый модуль был выпущен в обмен на более устоявшиеся модули getopt и optparse, так как они были неадекватны в отношении некоторых важных моментов.
Библиотека Python argparse:
$ ls
dcdb_20180201.sg4 mastro35.sg4 отверстия.sg4
dcdb_20180201.si4 mastro35.si4 отверстия.si4
dcdb_20180201.sn4 mastro35.sn4 отверстия.sn4
Разрешает использование позиционных раздоров
Разрешает настройку префиксных ожогов
Поддерживает переменное количество параметров для одиночного выбора
Поддерживаются подкоманды (парсер линий фундаментального порядка может использовать другие парсеры направлений, опираясь на определенные утверждения).
Перед началом работы необходимо понять, как работает интерфейс ордерной линии, поэтому откройте терминал на своем компьютере и выполните ордер ls, чтобы таким образом получить сводку записей, содержащихся в данном индексе:
Как должно быть очевидно, в настоящем каталоге много документов, однако направление не восстановило большое количество данных об этих записях.
К счастью, нет необходимости искать другую программу, чтобы иметь более экстравагантный обзор документов, содержащихся в текущем каталоге. Вам также не нужно самостоятельно изменять порядок ls, так как она получает интерфейс линии направления, т.е. только множество жетонов (так называемых констант), которые вы можете использовать для проектирования поведения этого направления.
В настоящее время вы пытаетесь выполнить ордер ls еще раз, но с добавлением к линии направления, как в модели внизу, выбора – l:
$ ls -l
всего 641824
-rw——- 1 dave staff 204558286 5 Mar 2018 dcdb_20180201.sg4
-rw——- 1 dave staff 110588409 5 Mar 2018 dcdb_20180201.si4
-rw——- 1 dave staff 2937516 5 Mar 2018 dcdb_20180201.sn4
-rw——- 1 dave staff 550127 27 Mar 2018 mastro35.sg4
-rw——- 1 dave staff 15974 11 Gen 17:01 mastro35.si4
-rw——- 1 dave staff 3636 27 Mar 2018 mastro35.sn4
-rw——- 1 dave staff 29128 17 Apr 2018 opensings.sg4
-rw——- 1 dave staff 276 17 Apr 2018 opensings.si4
-rw——- 1 dave staff 86 18 Apr 2018 openings.sn4
На данный момент урожайность совершенно другая. Восстановлена тонна данных о согласовании, собственнике, сборе и размере каждого документа и полном реестре занимаемых мест на табличке.
Это основано на том, что Вы использовали интерфейс линии ордеров в направлении ls и определили выбор – l, который дает возможность длинного расположения, экстраординарную конфигурацию, которая приносит значительно больше данных для каждого записанного документа.
Чтобы познакомиться с этой темой, вы собираетесь внимательно рассмотреть тонну утверждений, альтернатив и параметров, поэтому мы должны сразу же объяснить формулировку:
Разногласия – это одиночная часть прямой линии, ограниченная пробелами.
Альтернативой является особый вид разногласий (или часть разногласия), который может изменить поведение линии заказа.
Параметр – это особый вид разногласий, который дает дополнительные данные для одиночного выбора или приказа.
Подумайте о сопроводительном направлении:
$ ls – l – s – k/var/log
В этой модели у вас пять уникальных изобретений:
ls: название направления, которое вы выполняете.
– l: выбор в пользу значительного обобщающего положения
– s: выбор для печати отведенного размера каждой записи
– k: выбор размера в килобайтах
/var/log: параметр, дающий дополнительные данные (способ наклона) к направлению.
Обратите внимание, что в случае, если у вас есть разные альтернативы в одиночном порядке, в этот момент вы можете соединить их в одиночное состязание вроде этого:
$ ls – lsk/var/log
Здесь у тебя всего три претензии:
ls: название приказа, который вы выполняете.
– lsk: три различных варианта, которые вам необходимо расширить свои возможности (смесь – l, – s и – k).
/var/log: параметр, дающий дополнительные данные (способ наклона) к ордеру.
Когда следует использовать интерфейс линии направления.
Поскольку вы понимаете, что такое интерфейс линии направления, вы, возможно, задумываетесь, когда это умная мысль, чтобы выполнить его в своих проектах. Общее руководство заключается в том, что в случае, если вам нужно дать простой в использовании способ проектирования вашей программы, в этот момент вы должны рассмотреть интерфейс с ориентационными линиями, а стандартным методом для этого является использование библиотеки Python argparse.
Независимо от того, создаёте ли вы сложную программу на строке заказа, для работы которой нужна запись о компоновке, в случае, если вам нужно дать клиенту возможность указать, какой конструкторский документ использовать, было бы разумно признать этот стимул, сделав прямой линейный интерфейс с библиотекой Python argparse.
Самый эффективный метод использования библиотеки argparse от Python для создания интерфейса с прямой линией
Использование библиотеки Python argparse состоит из четырех этапов:
Импорт библиотеки Python argparse
Сделать парсер
Добавьте к синтаксическому анализатору дискреционные и позиционные аргументы.
Выполнить .parse_args()
После выполнения .parse_args(), вы получаете объект Namespace, который содержит простое свойство для каждого информационного сопряжения, полученного из строки направления.
Итак, чтобы детально рассмотреть эти четыре этапа с моделью, как насчет того, чтобы представить себе, что вы делаете программу под названием myls.py, которая обобщает записи, содержащиеся в настоящем каталоге. Вот потенциальное использование интерфейса вашей линии заказа без использования библиотеки Python argparse:
# myls.py
импорт os
импортные системы
если len(sys.argv) > 2:
print(‘Вы указали слишком много аргументов’).
sys.exit()
если len(sys.argv) < 2:
print(‘Вам нужно указать путь к списку’).
sys.exit()
input_path = sys.argv[1]
если не os.path.isdir(input_path):
print(‘Указанный путь не существует’)
sys.exit()
print(‘\n’.join(os.listdir(input_path))))
Это возможная реализация интерфейса командной строки для вашей программы, которая не использует библиотеку Python argparse, но если вы попробуете её выполнить, то увидите, что она работает:
$ python myls.py
Вам необходимо указать путь, который будет перечислен
$ python myls.py /mnt /proc /dev
Вы указали слишком много аргументов
$ python myls.py /mnt
корзина 1
корзина 2
Как вы видите, скрипт действительно работает, но результаты его работы сильно отличаются от тех, которые вы ожидаете от стандартной встроенной команды.
Теперь посмотрим, как библиотека argparse на Python может улучшить этот код:
# myls.py
# Импорт библиотеки argparse
разногласия по поводу импорта
импортные оs
импортные системы
# Создать парсер
my_parser = argparse.ArgumentParser(description=’Перечислить содержимое папки’).
# Добавьте аргументы
my_parser.add_argument(‘Path’),
metavar=”путь”,
type=str,
help=’путь к списку’)
# Выполнить метод parse_args()
args = my_parser.parse_args()
input_path = args.Path
если не os.path.isdir(input_path):
print(‘Указанный путь не существует’)
sys.exit()
print(‘\n’.join(os.listdir(input_path))))
Код сильно изменился с появлением библиотеки Python argparse.