Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 [ 117 ] 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145

запроса и идентификатор фрагмента. То есть применение функции к строке общего вида

scheme: netloc/path;parameters? query# fragment

дает (scheme, netloc, path, parameters, query, fragment). Если URL не содержит какого-либо компонента, соответствующий элемент возвращаемого кортежа будет равен пустой строке. Разделители компонент не включаются в результат, за исключением косой черты в начале пути:

>>> import urlparse >>> urlparse.urlparse(

... http: www.cwi.nl:80/%7Eguido/Python.html)

(http, www.cwi.nl:80, /%7Eguido/Python.html, , ", ")

Если задан аргумент default scheme, он будет использован в качестве идентификатора протокола (scheme identifier) по умолчанию - в том случае, если указанный URL не содержит идентификатора протокола.

Если задан и равен нулю аргумент allow fragments, использование идентификатора фрагмента в URL (последний компонент) считается недопустимым.

urlunparse( tuple)

Восстанавливает и возвращает URL из компонент, переданных в кортеже tuple. При последовательном применении функций urlparse() и urlunparse() Вы можете получить другой (например, если исходный URL содержит излишние разделители), но эквивалентный URL.

urljoin (base, rel url [, allow fragments])

Конструирует и возвращает полный URL, комбинируя базовый URL base и относительный URL rel url. Например:

>>> urljoin(

... http: www.cwi.nl/%7Eguido/Python.html,

... FAQ.html)

http: www.cwi.nl/%7Eguido/FAQ.html

Если задан и равен нулю аргумент allow fragments, использование идентификатора фрагмента в URL (последний компонент) считается недопустимым.



Поддержка форматов, используемых в Internet

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

rfc822 Обработка заголовков электронных писем (в стиле RFC 822).

mimetools Обработка сообщений в формате MIME. MimeWriter Средства для записи в формате MIME.

multifile Чтение сообщений, состоящих из нескольких частей (например, в формате MIME).

xdrlib Преобразование данных в формат XDR и обратно.

28.1 rfc822 - обработка заголовков электронных писем

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

Message( file [, seekable])

При создании экземпляров класса Message в качестве аргумента file должен быть указан файловый или подобный объект (достаточно, чтобы этот объект имел метод readline() ). При инициализации считываются и сохраняются заголовки из file вплоть до разделительной пустой строки.

Наличие методов seek() и tell() у объекта file позволяет использовать метод rewindbody() экземпляров класса Message. Кроме того, при наличии этих методов или метода unread() некорректные строки будут возвращены в поток. Таким образом, этот класс может быть использован для чтения буферизованных потоков.



Экземпляры класса Hessage являются отображениями имен заголовков к их значениям (с доступом только на чтение) и поддерживают большинство характерных для

Если аргумент seekable опущен или равен 1, наличие методов seek() и tell() определяется путем вызова tell(). Однако такой механизм не всегда хорошо работает. Поэтому, для обеспечения максимальной переносимости следует установить seekable равным нулю, если объект file не поддерживает установку указателя (например, если он представляет сетевое соединение).

Строки, считываемые из файла, могут заканчиваться комбинацией CR-LF или одним символом LF; перед сохранением комбинация CR-LF заменяется на LF.

AddressList(field)

При инициализации экземпляров этого класса используется единственный аргумент - строка, в которой, в соответствии с RFC 822, через запятую перечислены адреса. При использовании в качестве аргумента field значения None, созданный экземпляр будет представлять пустой список.

parsedate( date)

Пытается проанализировать строку с датой в соответствии с правилами, приведенными в RFC 822 (например, Hon, 20 Nov 1995 19:12:08 -0500). В некоторых случаях эта функция срабатывает и для строк, в которых дата записана не в соответствии со стандартом. В случае удачного анализа возвращает кортеж из девяти элементов, пригодный для использования в качестве аргумента функции time.mktimeO (назначение элементов кортежа смотрите в описании модуля time), иначе возвращает None. Заметим, что 6, 7 и 8 элементы возвращаемого кортежа не имеют полезных значений.

parsedate tz( date)

Работает аналогично функции parsedate() , но возвращает либо None, либо кортеж из десяти элементов. Первые девять элементов такие же, десятый - сдвиг часового пояса в секундах относительно универсального времени. Заметим, что знак этого сдвига противоположен знаку time.timezone для того же часового пояса (time.timezone следует стандарту POSIX, в то время как данная функция - RFC 822). Если строка date не содержит информации о часовом поясе, последний элемент кортежа будет равен None. Заметим, что 6, 7 и 8 элементы возвращаемого кортежа не имеют полезных значений.

mktime tz( tuple)

Преобразует кортеж из десяти элементов (например, возвращаемый функцией parsedate tz() ) в число секунд, пройденных с начала эпохи (UTC timestamp). Если последний элемент кортежа tuple равен None, считается, что время в tuple представлено для локального часового пояса. Эта функция может давать небольшую ошибку в точках перехода на летнее и зимнее время.

formatdate( [tuple])

Возвращает строку с временем tuple (кортеж из девяти элементов - значение элементов смотри в описании модуля time), представленным в соответствии с

RFC 822 и RFC 1123.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 [ 117 ] 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145