18.10. uu – Кодирование и декодирование файлов uuencode¶uu – Encode and decode uuencode files
Этот модуль кодирует и декодирует файлы в формате uuencode, позволяя передавать произвольные двоичные данные по ASCII-соединениям. Там, где ожидается аргумент файла, методы принимают файлоподобный объект. Для обратной совместимости также принимается строка с путём к файлу; соответствующий файл будет открыт для чтения и записи; путь '-' считается стандартным вводом или выводом. Однако этот интерфейс устарел; лучше, чтобы вызывающий код сам открывал файл и убеждался, что при необходимости режим на Windows равен 'rb' или 'wb'.
Этот код был предоставлен Лэнсом Эллингхаусом и доработан Джеком Янсеном.
Модуль uu определяет следующие функции:
- uu.encode(in_file, out_file, name=None, mode=None)¶
- Кодирует файл in_file в формат uuencode и записывает результат в файл out_file. Закодированный файл будет содержать заголовок с указанием name и mode в качестве значений по умолчанию для результатов декодирования. Значения по умолчанию берутся из in_file, или из '-' и 0o666 соответственно.
- uu.decode(in_file, out_file=None, mode=None, quiet=False)¶
Этот вызов декодирует uuencoded-файл in_file, помещая результат в файл out_file. Если out_file является путём, то mode используется для установки битов разрешений, если файл должен быть создан. Значения по умолчанию для out_file и mode берутся из заголовка uuencode. Однако если файл, указанный в заголовке, уже существует, возбуждается исключение uu.Error.
decode() может выводить предупреждение в стандартный поток ошибок, если входные данные были созданы некорректным uuencoder и Python смог восстановиться после этой ошибки. Установка quiet в истинное значение подавляет это предупреждение.
- exception uu.Error¶
- Подкласс Exception, это исключение может быть возбуждено функциями uu.decode() в различных ситуациях, как описано выше, а также при неправильно отформатированном заголовке или усечённом входном файле.
См. также
- Модуль binascii
- Вспомогательный модуль, содержащий преобразования ASCII-в-двоичный и двоичный-в-ASCII.