Как упоминал Дэн Д., вы можете использовать struct.pack для форматирования ваших данных в соответствии с требованиями протокола. В документации по http://docs.python.org/library/struct.html есть несколько примеров.
Затем вам нужно взглянуть на структуру пакетов на http://www.minecraftwiki.net/wiki/Classic_Server_Protocol#Packet_Protocol, которая подробно описывает, как должны выглядеть ваши пакеты. В соответствии с описанием пакета вам понадобится строка формата struct.pack, похожая на «Bbh» для первых 4 байтов.
struct.pack("Bbh", 0, 1, 7)
Для пакета идентификации игрока с идентификатором 1 и версией протокола 7. Вы должны будете дополнить его оставшейся частью пакета 64-байтовой строкой + 1024-байтовой двоичной частью, оба с заполнением.
РЕДАКТИРОВАТЬ: Только что вспомнил, что Python может не быть прямым порядком байтов, так что вы можете также добавить это в строку формата.
struct.pack("!Bbh", 0, 1, 7)
Примеры форматов пакетов и способы их обработки можно найти в источнике сервера myne2
https://bitbucket.org/andrewgodwin/myne2/src/236deac8cd2f/myne/core/constants.py
https://bitbucket.org/andrewgodwin/myne2/src/236deac8cd2f/myne/core/packeter.py
Модуль python страницы недели для struct также содержит очень полезную информацию.