Я пытался взять длинный int (m39 prime) и сохранить его как двоичный файл. Когда я пытаюсь записать значение bin в файл, оно записывается в виде строки.
>>> m39 = bin(2**13466917-1)
>>> open('m39', 'wb').write(m39)
madsc13ntist@jaberwock:~/Desktop$ xxd m39 | head
0000000: 3062 3131 3131 3131 3131 3131 3131 3131 0b11111111111111
0000010: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000020: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000030: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000040: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000050: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000060: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000070: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
0000080: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
Я почти уверен, что на этот вопрос есть смехотворно простой ответ, но мне не удалось преобразовать m39 в байтовый массив или буфер для записи. Должен ли я использовать io или memoryview и т.д.
Заранее большое спасибо за любую помощь, которую кто-либо может предоставить. :)
Я использую Python 2.7.3 и предпочитаю использовать встроенные модули, если это вообще возможно.
РЕДАКТИРОВАТЬ: я пытаюсь сохранить значение в виде двоичного файла, который будет занимать гораздо меньше места на диске/памяти. Я понимаю, что тип bin — это строка в python, но я пытаюсь написать \x11\x11\x11\x11 not \x31\x31\x31\x31
. Мое намерение состоит не в том, чтобы напечатать строковое представление значения, а в том, чтобы эффективно сохранить его для последующего использования/манипулирования.