Роман Сузи - Язык программирования Python

Здесь есть возможность читать онлайн «Роман Сузи - Язык программирования Python» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования Python: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования Python»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.

Язык программирования Python — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования Python», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

parts = []

ct_fields = []

filenames = []

f = open("virus.eml")

msg = email.message_from_file(f)

for submsg in msg.walk():

parts.append(submsg.get_content_type())

ct_fields.append(submsg.get('Content–Type', ''))

filenames.append(submsg.get_filename())

if submsg.get_filename():

print "Длина файла:", len(submsg.get_payload())

f.close()

print parts

print ct_fields

print filenames

В результате получилось:

Длина файла: 31173

['multipart/mixed', 'text/html', 'application/octet–stream']

['multipart/mixed;\n boundary="--------hidejpxkblmvuwfplzue"',

'text/html; charset="us–ascii"',

'application/octet–stream; name="price.cpl"']

[None, None, 'price.cpl']

Из списка parts можно увидеть, что само сообщение имеет тип multipart/mixed, тогда как две его части — text/htmlи application/octet–streamсоответственно. Только с последней частью связано имя файла ( price.cpl). Файл читается методом get_payload()и вычисляется его длина.

Кстати, в случае, когда сообщение является контейнером для других частей, get_payload()выдает список объектов–сообщений (то есть экземпляров класса Message).

Формирование сообщения

Часто возникает ситуация, когда нужно сформировать сообщение с вложенным файлом. В следующем примере строится сообщение с текстом и вложением. В качестве класса для порождения сообщения можно использовать не только Messageиз модуля email.Message, но и MIMEMultipartиз email.MIMEMultipart(для сообщений из нескольких частей), MIMEImage(для сообщения с графическим изображением), MIMEAudio(для аудиофайлов), MIMEText(для текстовых частей):

# Загружаются необходимые модули и функции из модулей

from email.Header import make_header as mkh

from email.MIMEMultipart import MIMEMultipart

from email.MIMEText import MIMEText

from email.MIMEBase import MIMEBase

from email.Encoders import encode_base64

# Создается главное сообщение и задаются некоторые поля

msg = MIMEMultipart()

msg["Subject"] = mkh([("Привет", "koi8–r")])

msg["From"] = mkh([("Друг", "koi8–r"), ("", "us–ascii")])

msg["To"] = mkh([("Друг2", "koi8–r"), ("", "us–ascii")])

# То, чего будет не видно, если почтовая программа поддерживает MIME

msg.preamble = "Multipart message"

msg.epilogue = ""

# Текстовая часть сообщения

text = u"""К письму приложен файл с архивом.""".encode("koi8–r")

to_attach = MIMEText(text, _charset="koi8–r")

msg.attach(to_attach)

# Прикладывается файл

fp = open("archive_file.zip", "rb")

to_attach = MIMEBase("application", "octet–stream")

to_attach.set_payload(fp.read())

encode_base64(to_attach)

to_attach.add_header("Content–Disposition", "attachment",

filename="archive_file.zip")

fp.close()

msg.attach(to_attach)

print msg.as_string()

В этом примере видно сразу несколько модулей пакета email. Функция make_header()из email.Headerпозволяет закодировать содержимое для заголовка:

>>> from email.Header import make_header

>>> print make_header([("Друг", "koi8–r"), ("", "us–ascii")])

=?koi8–r?b?5NLVxw==?=

>>> print make_header([(u"Друг", ""), ("", "us–ascii")])

=?utf–8?b?w6TDksOVw4c=?=

Функция email.Encoders.encode_base64()воздействует на переданное ей сообщение и кодирует тело с помощью base64. Другие варианты: encode_quopri() — кодировать quoted printable, encode_7or8bit()— оставить семь или восемь бит. Эти функции добавляют необходимые поля.

Аргументы конструкторов классов из MIME–модулей пакета email:

class MIMEBase(_maintype, _subtype, **_params)

Базовый класс для всех использующих MIME сообщений (подклассов Message). Тип содержимого задается через _maintypeи _subtype.

class MIMENonMultipart()

Подкласс для MIMEBase, в котором запрещен метод attach(), отчего он гарантированно состоит из одной части.

class MIMEMultipart([_subtype[, boundary[, _subparts[, _params]]]])

Подкласс для MIMEBase, который является базовым для MIME–сообщений из нескольких частей. Главный тип multipart, подтип указывается с помощью _subtype.

class MIMEAudio(_audiodata[, _subtype[, _encoder[, **_params]]])

Подкласс MIMENonMultipart. Используется для создания MIME–сообщений, содержащих аудио данные. Главный тип — audio, подтип указывается с помощью _subtype. Данные задаются параметром _audiodata.

class MIMEImage(_imagedata[, _subtype[, _encoder[, **_params]]])

Подкласс MIMENonMultipart. Используется для создания MIME–сообщений с графическим изображением. Главный тип — image, подтип указывается с помощью _subtype. Данные задаются параметром _imagedata.

class MIMEMessage(_msg[, _subtype])

Подкласс MIMENonMultipartдля класса MIMENonMultipartиспользуется для создания MIME–объектов с главным типом message. Параметр _msgприменяется в качестве тела и должен являться экземпляром класса Messageили его потомков. Подтип задается с помощью _subtype, по умолчанию 'rfc822'.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования Python»

Представляем Вашему вниманию похожие книги на «Язык программирования Python» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования Python»

Обсуждение, отзывы о книге «Язык программирования Python» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x