Генераторы словарей и модули Рython
Функции в языке Python Функции в языке PythonВсе функции в языке Python возвращают какое-либо значение, хотя вполне возможно (и часто так и делается) просто игнорировать это значение. Возвращаемое значение может быть единственным значением или кортежем значений,...
Реализация генераторов Реализация генераторовМы рассмотрели коллекции-последовательности, tuple, collections, na-medtuple и list, поддерживающие, как и строки, возможность извлечения срезов. Также было рассмотрено использование оператора распаковывания...
Парсинг документов XML Парсинг документов XMLXML: Для парсинга документов XML широко используются два основных подхода. Один из них основан на анализе DOM (Document Object Model -объектная модель документа), а другой - на использовании SAX (Simple API for XML - упрощенный...
Копирование коллекций Копирование коллекцийКопирование коллекций: Поскольку в языке Python повсюду используются ссылки на объекты, когда выполняется оператор присваивания (=), никакого копирования данных на самом деле не происходит. Если справа от оператора находится литерал,...
Работа с аргументами командной строки
Работа с аргументами командной строки: Если нам потребуется иметь возможность в программе обрабатывать текст, который может быть получен в результате перенаправления в консоли или находиться в файлах, имена которых перечислены в командной строке, мы можем воспользоваться функцией f ileinput. input ( ) из модуля fileinput.

Эта функция выполняет итерации по всем строкам, полученным в результате операции перенаправления в консоли (если они есть), или по всем строкам из файлов, имена которых перечислены в командной строке, как будто это единая последовательность строк. Модуль может сообщать имя текущего файла и номер строки с помощью функций fileinput. filenameO и fileinput. linenoO, а также предоставляет возможность работать с некоторыми типами сжатых файлов.

Для работы с параметрами командной строки в стандартной библиотеке имеется два модуля - optparse и getopt. Модуль getopt популярен, так как он прост в использовании и к тому же давно входит в состав библиотеки. Модуль optparse более новый и обладает более широкими возможностями. Пример: модуль optparse. В решении (csv2html2_ans.py) для обработки аргументов имеется функция объемом 26 строк. Для обработки аргументов потребовалось всего девять строк программного кода плюс строка с инструкцией import optparse.

Кроме того, нам не пришлось явно обрабатывать параметры -h и -help - эти параметры обслуживаются самим модулем optparse, который для вывода соответствующего сообщения использует текст из именованных аргументов help, где текст "%default" замещается значениями по умолчанию соответствующих параметров. Обратите также внимание, что теперь параметры можно указывать в привычном для системы UNIX стиле - как с помощью коротких, так с помощью длинных имен параметров, начинающихся с символа дефиса. Короткие имена удобны для организации взаимодействий с пользователем в консоли, а длинные имена более понятны при использовании в сценариях командной оболочки.

Например, чтобы ограничить максимальную ширину 80 символами, мы можем использовать любой из следующих вариантов определения параметра: -w80, -w 80, --max-width=80 или -maxwidth 80. После разбора параметров командной строки доступ к их значениям можно получить с помощью имен, указываемых в аргументах dest, например, opts, maxwidth и opts, format. Все аргументы командной строки, которые не были обработаны (обычно это имена файлов), помещаются в список args.

Если в процессе разбора командной строки возникает ошибка, синтаксический анализатор модуля optparse произведет вызов sys.exit(2). Это приведет к завершению программы и возврату операционной системе числа 2 в качестве возвращаемого значения программы. Традиционно значение 2 свидетельствует об ошибке в использовании программы, значение 1 используется для индикации об ошибках любого другого типа и значение 0 означает благополучное завершение. Когда функция sys. exit вызывается без аргументов, операционной системе возвращается значение 0.
Навигация: 1 2 3 4
 
 
© Copyright