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

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

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

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

рас П. Ьавепаае( ) соответственно. Имя файла также может быть разбито на две части — имя и расширение, с помощью функции ов. расп. вр1111ехс(). Функция ов, рзсп,)осп() принимает произвольное число строк путей и возвращает единый путь, используя платформозависимый разделитель каталогов. Если в программе потребуется получить комплекс сведений о файле или каталоге, можно использовать функцию оя. всат(), но когда необходимы только отдельные элементы информации, можно использовать соответствующие функции из модуля ов.расп, например, ов.респ.ехсвтв(), ов.

рзсп. десв!се(), оя. раСП, !вс!1е() или ов. рз1П, свдс г(). Модуль асаесурев включает функцию асае1урев.доевв 1уре(), которая пытается определить тип М1МЕ файла. Пример: модули ов и ов.раФ Ниже показано, как можно использовать модули ов и ов, ресП для создания словаря, каждый ключ которого представляет собой имя файла (включая его путь), а значение — отметку времени (количество секунд, прошедших от начала эпохи), когда произошло последнее изменение файла, для всех файлов в каталоге рз1П: бете Ггоа пеае = () гог пепе сп ов. 1сясдсг(ра1п): гоппеае = ов.ра1п.)осп(респ, пепе) !Г ов.раСП.!ятс1е(то11паае): басе тгоа папе(то11пеае) = ов.респ.десас!ае(то11паае) 262 Глава 5. Модули Этот фрагмент программного кода выглядит очень понятным, но он может использоваться для составления перечня файлов только в одном каталоге.

Если необходимо выполнить обход всего дерева каталогов, можно воспользоваться функцией оэ, на18( ) . Ниже приводится фрагмент программы Г(пЮирру.' Программный код создает словарь, каждый ключ которого представляет собой кортеж из двух элементов (размер файла и имя файла), где имя файла не содержит пути к нему. Каждое значение словаря — это список полных имен файлов, соответствующих имени файла в ключе и имеющих тот же размер: сага = со11есггопз.сегас1101ст(1181) гог гоог, сггз, г>1еэ 1п са.гга18(рагь): Гог Г11епаве [п (41еа; Ги11паве = оэ.рагп.)о1п(гоо1, (11епаве) ьеу = (ое.рагь.регатте(гс11паве), г!1епаве) Сага[хеу].аррепз((р11паве) Для каждого каталога функция оэ, иа1Ь() возвращает путь к корневому каталогу поддерева и два списка, один из них — это список подкаталогов в каталоге, а второй — список файлов в каталоге.

Чтобы получить полный путь к файлу, необходимо объединить путь к корню и имя файла. Примечательно, что здесь не требуется выполнять рекурсию, так как функция оэ. иа18() делает это сама. После сбора всей необходимой информации можно выполнить обход получившегося словаря и вывести отчет о возможных дубликатах файлов: (ог зые, 841епаве (п аоггес(сага); павез = Са18[(81ге, (11епаве)] гГ 1еп(ранее) > 1; рг!пг("(О) ((1) ьугез) вау ье сор!гсагес " "((2) (41еэ): Ь (огваг((11епаве, аые, 1еп(пагаез))) гог паве гп павеэ: рггпг("11(0)'ь гогваг(паве)) Поскольку в качестве ключей словаря используются кортежи (размер и имя файла), нам не требуется использовать функцию Ьеу, чтобы отсортировать данные по размеру файла.

Если какому-либо кортежу (размер, имя файла) соответствует более одного имени файла в списке, зто могут быть дубликаты одного и того же файла. зпе!132.011 (8460288 Ьу1ез) вау Ье Срр1гсагез (2 (11ее), '1вгпсова1еусгев321зье1132. 011 '1вгпсове'геуе1ев321011сасье1зье1!32.011 В главе 9 приводится более сложная версия программы поиска дубликатов файлов, ~!вг(г(и)г(!си(ееи.ру, которая использует многопоточный режим ра.

боты н применяет вычисление контрольных сумм М)18. Обзор стандартной библиотеки языка Рутбоп 263 Это последний элемент из вывода, содержащего 3 282 строки, полученного командой 1'1пеоар. ру ти1пеонз в системе т(Г1пдотуз ХР. Работа с сетями и Интернетом Пакеты и модули для работы с сетями и Интернетом составляют основную часть стандартной библиотеки РуЬЬоп. На самом низком уровне модуль зоскет предоставляет наиболее фундаментальные функциональные возможности для работы с сетями, среди которых имеются функции создания сокетов, выполнения запросов к 1)!х(Б (1)оша1п )т(вше Буз(еш — система доменных имен) и обработки 1Р-адресов (1п$егпе( Рго1осо1 — протокол Интернета).

Настроить шифрование и аутентификацию при работе с сокетами можно с помощью модуля за1. Модуль аоскетзегчег предоставляет реализации серверов ТСР (Тгапзпйззюп Соп(го! Рго1осо! — протокол управления передачей) и Ш)Р (()зег 1)а$аагат Рго(осе! — протокол пользовательских дейтаграмм). Эти серверы могут обрабатывать запросы непосредственно или создавать отдельные процессы (за счет ветвления) и потоки управления для обработки каждого запроса. Асинхронная обработка сокетов на стороне клиентов и серверов может быть реализована с помощью модуля азупсоге и построенного на его основе более высокоуровневого модуля азупс па(.

В стандартной библиотеке РуЬЬоп имеется реализация т(ГБ01 (Ъ(теЬ Бегчег 0аЬечгау 1п(ег1асе — интерфейс шлюза веб-сервера), представляющая собой стандартный интерфейс между веб-серверами и веб-приложениями, написанными на языке Ру(Ьоп. В поддержку стандарта пакет нзд1гег предоставляет рекомендации по внедрению т(((Б01 и содержит модули для реализации серверов НТТР, совместимых с требованиями спецификаций т(1(801, способных обрабатывать заголовки ответов и сценарии С01 (Сопппоп 0а1етчау 1пЬегГасе — общий шлюзовой интерфейс). Кроме того, модуль Ьттр, аегчег предоставляет реализацию сервера НТТР, которому можно определить обработчик запросов (стандартная реализация предоставляется) для запуска сценариев С01.

Модули Пттр,сооазез и Ьттр.сооК(е)аг содержат функции для работы с соо)с(ез, а поддержка сценариев С01 предоставляется модулями сдз и сд1(Ь. Доступ к запросам НТТР на стороне клиента может быть реализован с помощью модуля Ьттр. с11епт, хотя более простой и удобный доступ к адресам ()ВЬ обеспечивается модулями из пакета пг111Ь: пг111Ь. рагзе, зг11тЬ, геооезт, сг11(Ь.

гезропзе, пг111Ь.еггог и зг11!Ь. говотрагзег. Загрузка файлов из Интернета выполняется очень просто, как показано ниже: гп = иг111ь.гепзезт.зг1ореп("пттр:Оннн.рутпоп.огд/тппех.птп1") Шп1 = тл.геап().аесоае("а(та') Функция иг111Ь. гедиезт. сг1орап() возвращает объект, который ведет себя практически как объект файла, открытый для чтения в двоичном 264 Глава 5. Модули режиме. Этот фрагмент получает файл Сиг(ех.гс(т1 с веб-сайта РуСЬоп (в виде объекта Ьугеа) и запоминает его в виде строки в переменной Пгв1. Имеется также возможность загружать файлы и сохранять их в локальной файловой системе с помощью функции пг111Ь.

геапеаС. пг1гегтече(). Имеется возможность производить синтаксический анализ документов НТМ). и ХНТМ( с помощью модуля псв1. рагаег; адреса ()В) могут анализироваться и создаваться с помощью модуля с г11гЬ. рагзе; а файлы гоЬогюгх( могут анализироваться с помощью модуля пг11сЬ. гоЬоС- рагаег. Данные в формате ЛЯОМ ()ачаЯсг1рС ОЬ)есС МоСаС1оп — формат записи объектов )ачаЯсг1рС) могут читаться н записываться с помощью модуля ) зоп. Помимо поддержки серверов и клиентов НТТР в библиотеке имеется поддержка ХМЬ-ВРС (ВешоСе Ргосес(пге СаП вЂ” вызов удаленных процедур), реализованная в виде модулей хв1грс, аегчег и хв1грс.с1гепг. Дополнительные возможности для работы на стороне клиента с протоколом РТР (Р11е ТгапэроСг РгоСосо! — протокол передачи файлов) реализованы в виде модуля Ггр11Ь; для работы с протоколом ММТР (МеС- ууог)г Меууз ТгапэрогС РгоСосо1 — сетевой протокол передачи новостей)— в виде модуля ппгр1гЬ; для работы с протоколом ТЕ1.МЕТ вЂ” в виде модуля Се1пег11Ь.

Модуль эвСрз предоставляет реализацию сервера ЯМТР (Яппр1е Май ТгапэрогС РгоСосо1 — упрощенный протокол электронной почты), модуль звгр11Ь предоставляет возможность реализации клиентов электронной почты для протокола ЯМТР, модуль 1вар11Ь вЂ” для протокола 1МАР4 (1пСегпеС Мевэаяе Ассеэв РгоСосо1 — протокол интерактивного доступа к электронной почте) и модуль рор11Ь вЂ” для протокола РОРЗ (РоэС ОЛ(се РгоСосо1 — протокол электронной почты). Возможность доступа к почтовым ящикам различных форматов обеспечивает модуль ва11Ьох. Отдельные сообщения электронной почты (включая сообщения, состоящие из нескольких частей) могут создаваться и обрабатываться средствами модуля еваг1. Если возможностей пакетов и модулей стандартной библиотеки окажется недостаточно, можно обратиться к Тш1зСег( (шшшхш(агег(тап г(х.сот) — обширной библиотеке средств для работы с сетями, разрабатываемой сторонними разработчиками.

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

Обзор стандартной библиотеки языка Рутпоп 265 хм~ Для парсинга документов ХМЬ широко используются два основных подхода. Один из них основан на анализе РОМ (Росшпепь ОЬ)ест Мос)е!— объектная модель документа), а другой — на использовании ЯАХ (Яппр!е АР1 гог ХМ1 — упрощенный прикладной интерфейс для работы с документами ХМ1). В библиотеке имеется два парсера РОМ вЂ” один из них представлен модулем хв1. Зов, а второй — модулем хв1. Сов. втптСов. Парсер ЯАХ представлен модулем хв1. зах.

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

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

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

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