Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 59

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 59 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 592018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 59)

Бторой модуль более сложный, имеет свои собственные исключения, использует возможность динамического создания функций с платформозависимой реализацией, частные глобальные данные, более сложные доктесты и выполняет функцию инициализации. Примерно половина главы была посвящена обзору стандартной библиотеки языка РуС)!оп. Было упомянуто несколько модулей, предназначенных для работы со строками, и представлена пара примеров использования объектов (о. Згг(пз10.

Один из примеров продемонстрировал, как можно записать текст в файл либо с использованием встроенной функции рг(лг(), либо с использованием метода объекта файла иг!ге(), и как можно использовать объект (о,бгг!лВ)0 вместо настоящего файла. Б предыдущих главах мы обрабатывали аргументы командной строки, непосредственно читая содержимое зуз, агзч, но при обзоре поддержки обработки аргументов командной строки, включенной в библиотеку, мы познакомились с модулем ар!за гзе, который существенно упрощает работу с аргументами командной строки, — далее мы широко будем использовать этот модуль.

Была упомянута имеющаяся в языке превосходная поддержка работы с числами, числовые типы в библиотеке, три модуля с математическими функциями, а также поддержка научных и инженерных вычислений, предоставляемая проектом Яс!Ру. Коротко были описаны библиотечные и созданные сторонними разработчиками классы для работы с датой/временем, а также представлены примеры, демонстрирующие, как можно получить текущие дату и время и как выполнять преобразования между типом Саге!!ее. Саге!!ее и количеством секунд, прошедших от начала эпохи. Также были рассмотрены дополнительные типы коллекций и алгоритмы работы с упорядоченными последовательностями, реализованные в стандартной библиотеке, наряду с несколькими примерами использования функций из модуля Леарс. Были представлены модули поддержки различных способов кодирования файлов (не имеющих отношения к кодировкам символов), модули для работы со сжатыми файлами в наиболее популярных форматах архивирования, а также модули поддержки работы с аудиоданными.

Был дан пример, демонстрирующий порядок использования кодировки Баве64 для сохранения двоичных данных в файлах .ру, а также программа, выполняющая распаковывание тарболлов. Библиотекой предоставляется существенная поддержка операций над файлами Глава 5. Модули и каталогами, причем все эти операции реализованы в виде платформонезависимых функций.

В приведенных примерах было показано, как можно создать словарь с именами файлов в виде ключей и временем последнего изменения в виде значений, а также продемонстрировано, как выполнить рекурсивный обход дерева каталогов с целью выявления дубликатов файлов, основываясь на их именах и размерах. Огромную долю библиотеки занимают модули для реализации сетевых взаимодействий. Мы очень коротко рассмотрели, что имеется в библиотеке, начиная от обычных сокетов (включая сокеты с шифрованием трафика) до серверов ТСР, 1)ВР и НТТР и поддержки %ГЯ01.

Также были упомянуты модули, предназначенные для работы с соо)с1ев, сценариями С01 и данными протокола НТТР, средства синтаксического анализа НТМЬ, ХНТМЬ и адресов 1)КЬ. Были упомянуты прочие модули, включая модули для работы с протоколом ХМЬ-КРС и высокоуровневыми протоколами, такими как ТР и )х))хГТР, а также поддержка работы с протоколом электронной почты ВМТР, как на стороне клиента, так и на стороне сервера, и поддержка протоколов 1МАР4 и РОЗ на стороне клиента. Помимо всего прочего была упомянута имеющаяся в составе библиотеки мощная поддержка возможности записи и парсинга формата ХМ1., включая парсеры РОМ, БАХ и дерева элементов, а также модуль ехра 1. Был приведен пример использования модуля хв!,еггее.

Е1езелгТгее. Также были упомянуты некоторые другие пакеты и модули, имеющиеся в библиотеке. Стандартная библиотека языка Ру1)гоп представляет собой чрезвычайно ценный ресурс, который позволит сэкономить массу сил и времени, и во многих случаях позволяет писать более короткие программы, опирающиеся на функциональные возможности, предоставляемые библиотекой. Кроме того, существуют еще буквально тысячи пакетов сторонних разработчиков, восполняющих любую нехватку возможностей, которую можно обнаружить в стандартной библиотеке. Все эти предопределенные функциональные возможности позволяют нам сосредоточиться на предметной стороне решаемой задачи, оставляя большую часть деталей реализации за библиотечными модулями.

Этой главой заканчивается обсуждение фундаментальных принципов процедурного программирования. В последующих главах, и в частности в главе 8, мы познакомимся с более передовыми и более специализированными приемами процедурного программирования, а в следующей главе будут представлены приемы объектно-ориентированного программирования.

Использование языка Руьлоп в качестве исключительно процедурного языка программирования вполне возможно и даже оправданно, особенно при создании небольших программ, но при разработке средних и крупных программ, собственных пакетов и модулей, а также для создания долгоживущих проектов, как правило, предпочтительнее использовать объектно-ориентированный подход. 271 Упражнение К счастью, все, о чем рассказывалось до сих пор, с успехом может при- меняться и в объектно-ориентированном программировании, поэтому в следующих главах мы продолжим накапливать наши знания и навы- ки, основываясь на уже заложенном фундаменте.

Упражнение Напишите программу, демонстрирующую содержимое каталогов подобно тому, как это делает команда б! г в ЪУ[пг[оигв или 15 в Шх[1Х. Преимущество наличия собственной программы отображения каталогов состоит в том, что мы можем заложить в нее предпочитаемые параметры по умолчанию и использовать одну и ту же программу в любой системе, не утруждая себя необходимостью запоминать различия между командами 01г и 15.

Программа должна иметь следующий интерфейс: Маада: 15.ру [ор!4опв] [ра!Л1 [ра!Л2 [... Са!ЛИ]]] тле ра!Ьв аге ор!7опа!; 17 по! д!иеп . 15 ивеб. Ор!4опв. -Л, --Ле1р опон !Л!5 Ла!р эевваде апб ех11 -Н, --Любеп впои Шббеп 771ев [беГаи11: СГГ] -е, --эоб1715б впои !аы эоб77!еб ба1е/!!эе [беГаи!1; оГГ] -о ОЯОЕЙ, --огбег=ОНОЕН огбег Ьу ('паве', 'и', 'гаоб!Г!аб', 'э', 5!75, '5') [беГаи!1: пасе] -г, --гасигв!ие гесигве 1и!о виьб!Гас!СГ155 [бегаи!1; огг] -в, --юаев влон в!аев [багаи11: огг] (Вывод программы был несколько изменен, чтобы уместить его в ши- рину книжной страницы.) Ниже приводится пример вывода содержимого небольшого каталога спомощьюкоманды1в.ру -ав -ов в!вс/: 7 74!55, 1 б7гес!огу Мы использовали группировку ключей командной строки (она обрабатывается модулем ор1рагве автоматически), но тот же самый эффект можно было бы получить, используя ключи по отдельности, например, 15, ру -э -в -ов э!вс/, или даже применив более плотную группировку, 15.

ру -эвов э!вс/, или используя длинные имена параметров, 15 ру — зоб!7!еб — 5 12ев — огбе С=51 2е а1вс/, или любую их комбинацию. 2007-04-10 15:49:01 2007-08-01 11:24:57 2007-10-12 09:00;27 2007-04-10 15:50;31 2008-02- 11 !4: 17:03 2008-02-05 14:22'38 2007-12-13 12:01:14 322 1, 039 2,445 2,848 12, 184 109,788 1,359,950 6!55/Спагв.рую э!вс/рГа-оид.руГГ э!во/!ев!.

1ои! э!вс/спагв.рпд э!во/аьв!Гас!.рбг э!вс/К1ас!7п!Го. 1Ух э!вс/!ГдсК1пд.рбГ э!55/рпопе!Сд/ Глава 5. Модули Обратите внимание на наличие ключа, управляющего включением в вывод программы «скрытых» файлов или каталогов, имена которых начинаются с точки (. ). Упражнение довольно сложное. Вам придется ознакомиться с документацией к модулю орграгве, чтобы узнать, как объявлять параметры, которые принимают значение Тгое, и как определить фиксированный перечень параметров. Если пользователь определяет в вызове параметр — гесс гв1»е, программа должна выполнить обход файлов (но не каталогов) с помощью функции ов.иа1К(); в противном случае она должна использовать для получения списка файлов и каталогов функцию ов, 11втсгг().

Еще один подводный камень — организация пропуска скрытых каталогов при рекурсии. Их можно удалять из списка С1гв, возвращаемого ов. иа1г,( ), и тем самым пропускать их, модифицируя список. Но будьте внимательны — не присваивайте новое значение непосредственно переменной б1 ге, поскольку это не повлияет на список, на который она ссылается, а просто (и совершенно бесполезно) заместит его. Подход, использованный в решении, основан на присваивании срезу всего списка, то есть с(гв(:) = (о1г Гог О1г 1п о1гв 1( по1 г)1г.втагтвимл(".")).

Лучший способ группировки разрядов при отображении размеров файлов состоит в том, чтобы импортировать модуль 1оса1е, вызвать функцию 1оса1е. ве11оса1е() для получения региональных настроек пользователя и использовать спецификатор формата и. Общий размер программы 1з.ру, разбитой на четыре функции, будет составлять около 130 строк. Объектно-ориентированное программирование Во всех предыдущих главах мы широко использовали объекты, но при этом наш стиль программирования был исключительно процедурным.

Характеристики

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее