Стандартная библиотека Python

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Богатая стандартная библиотека является одной из привлекательных сторон языка программирования Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщений, для работы с XML и т. п. Набор модулей для работы с операционной системой позволяет писать кросс-платформенные приложения. Существуют модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими протоколами, архивами, сериализации данных, поддержка юнит-тестирования и др.

Содержание

Сервисы периода исполнения

Взаимодействие с ОС

Обработка текстов

Форматы данных

CSV

Для чтения и записи файла в формате CSV предназначен модуль csv. Этот модуль предназначен для работы с различными диалектами: разделитель запятая, разделитель точка с запятой, разделитель табуляция (Excel). Простейший пример:

import csv
reader = csv.reader(open("some.csv", "rb"))
for row in reader:
    print row

Модуль позволяет настроить формат читаемых и записываемых файлов. Например можно выставить разделить полей :, разделитель строк — |, символ цитирования — ` (вместо " по умолчанию).

import csv
writer = csv.writer(open("some.csv", "wb"), delimiter=':', quoting=csv.QUOTE_MINIMAL, \
                    quotechar='`', lineterminator='|')
writer.writerows([ [1997, "Ford", "E350", "ac, abs, moon", "3000.00"],
    [1999, "Chevy", "Venture `Extended Edition`", "", "4900.00"],
    [1996, "Jeep", "Grand Cherokee", "air, moon roof, loaded MUST SELL!", "4799.00"] ])

Конфигурационные файлы

Для чения и записи конфигурационных файлов предназначен модуль ConfigParser. Этот модуль написан на чистом Python и, следовательно, платформонезависим. Синтаксис конфигурационных файлов похож на тот, что используется в INI-файлах Windows. Например:

[My Section]
foodir=%(dir)s/whatever
dir=frob
version: 1.0

В качестве разделителя ключа и значения может использоваться = или :. При использовании классов ConfigParser и SafeConfigParser происходит замена строки %(<ключ>)s на значение параметра <ключ>. В указанном примере значение foodir будет равно frob/whatever.

Криптографические модули

В силу различных причин (в том числе политических — во многих странах запрещена разработка и распространение криптографического программного обеспечения без разрешения соответствующих государственных структур) поддержка криптографии в стандартной библиотеке Python весьма ограниченна и сводится к хеш-функциям .
В версии 2.5 структура крипто библиотеки была унифицирована — все хеш функции собраны в модуль hashlib и удалены бесполезные модули некриптостойкого шифрования. Ранние модули md5,hmac,sha объявлены устаревшими и будут удалены в одном из последующих релизов.

Как и в некоторых других случаях ( DB-API, Python Web Server Gateway Interface) при невозможности (или нецелесообразности) включить полноценную поддержку технологии в стандартную библиотеку были приняты стандарты на интерфейсы, предоставляемые внешними библиотеками - API для хеш-функций, API для блочных шифров. Однако далеко не все библиотеки соответствуют этим требованиям (либо в силу старости — созданы до написания CryptoAPI, либо из-за того что являются автоматически сгенерированными обертками поверх соответствующих C библиотек).

Использовать Crypto API — совместимые библиотеки достаточно просто:

>>> import hashlib
>>> m = hashlib.new('md5')      # создаем новый хеширующий объект с MD5 функцией
>>> m = hashlib.md5()           # либо так
>>> m.update("test data")       # добавляем данные
>>> m.digest()
'\xebs:\x00\xc0\xc9\xd36\xe6V\x91\xa3z\xb5B\x93'
>>> m.hexdigest()
'eb733a00c0c9d336e65691a37ab54293'

hashlib обеспечивает поддержку следующих хеш-функций : MD5,SHA-1,SHA224,SHA256,SHA384,SHA512 (в сборках Python со включенной OpenSSL библиотекой этот список шире). Следует отметить что одно только присутствие алгоритма в стандартной библиотеке не гарантирует его криптографическую надежность. Так алгоритмы MD5,SHA-1 по состоянию на начало 2007 года не являются криптостойкими (см. соответствующие wiki страницы).
Для шифрования приходится использовать сторонние библиотеки, например pycrypto(соответствует Crypto API) или M2Crypto (не соответствует Crypto API). Достаточно полный список представлен в pypi.

Сетевые протоколы

Поддержка разработки для WWW

Простые базы данных

Поддержка разработки программного обеспечения

Многопоточные вычисления

Графический интерфейс

Интроспекция

Платформно-зависимые модули

en:Python (programming language)#Standard library
Личные инструменты

Served in 0.141 secs.