все Python 3до 3.11Удалено из стандартной библиотекипонятие
binhex
удалённые модули
Модуль кодирования файлов в формат BinHex4 для старой Mac OS. Удалён в Python 3.11 — для текстового кодирования байтов используйте base64.
Синтаксис
import binhex # до 3.11
BinHex4 переводил файл классической Mac OS в ASCII-текст, чтобы пересылать его по почте. Формат давно вышел из употребления, модуль объявили устаревшим в Python 3.9 и в 3.11 убрали вместе с функциями binascii.a2b_hqx(), b2a_hqx(), rlecode_hqx() и rldecode_hqx(). Как переписать: для передачи байтов текстом берите base64.b64encode() и base64.b64decode(); для файла — прочитать его в bytes, закодировать и записать результат. Контрольная сумма binascii.crc_hqx() осталась на месте.
Примеры
# Python 3.11+
try:
import binhex
except ModuleNotFoundError as e:
print(type(e).__name__) # → ModuleNotFoundError
# Python 3.11+
import base64, binascii
text = base64.b64encode(b'hello')
print(text) # → b'aGVsbG8='
print(base64.b64decode(text)) # → b'hello'
print(binascii.crc_hqx(b'hello', 0)) # → 50018
import binhex
with open('in.txt', 'wb') as f:
f.write(b'hello')
binhex.binhex('in.txt', 'in.hqx')
binhex.hexbin('in.hqx', 'back.txt')
with open('back.txt', 'rb') as f:
print(f.read()) # → b'hello'
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности