Skip to content

Home Администрирование Основы использования потока стандартного ввода
Основы использования потока стандартного ввода

Самый простой путь к созданию инструментов командной строки опирается на знание того факта, что модуль sys позволяет обрабатывать аргументы командной строки посредством атрибута sys.argv. В примере 13.1 демонстрируется самый простой инструмент командной строки, какой только возможен:

Эти две строки программного кода возвращают на стандартный вывод все, что вводится в командной строке:

и

вернет на стандартный вывод

и

вернет на стандартный вывод

Пример 13.1. sysargv. py

Добавим немного конкретики и слегка изменим программный код так, чтобы он подсчитывал количество аргументов командной строки, как показано в примере 13.2.

Пример 13.2. sysargv.py

Вы могли бы подумать: «Как все просто, теперь мне осталось лишь получить параметры командной строки по их индексам из списка sys.argv и написать некоторую логику их обработки». В общем вы правы, это довольно просто реализовать. Давайте добавим некоторые особенности к нашему приложению командной строки. Последнее, что мы могли бы сделать, - это вывести сообщение об ошибке в поток стандартного вывода сообщений об ошибках в случае отсутствия аргументов командной строки, как показано в примере 13.3.

Пример 13.3. sysargv-step2.py

Использование sys.argv при создании инструментов командной строки зачастую является неправильным выбором, несмотря на всю его простоту. В стандартной библиотеке языка Python имеется модуль opt-parse, который берет на себя решение одной из самых неудобных задач в создании качественного инструмента командной строки. Даже для самых крошечных «разовых» инструментов лучше использовать opt-parse, чем sys.argv, так как у «разовых» инструментов есть свойство со временем превращаться в нормальные рабочие инструменты. В следующем разделе мы объясним, почему лучше использовать модуль opt-parse, но суть ответа заключается в том, что наличие хорошего модуля разбора аргументов позволит разрешить самые необычные ситуации.

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top