Как написать целые числа в файл в двоичном формате в Python 3?Запись целых чисел в двоичном файле в python
Например, я хочу написать 6277101735386680763835789423176059013767194773182842284081 файлу в двоичном виде в точности 24 байта (без знака, я буду работать только с положительными целыми числами). Как я могу это сделать? Я попробовал следующее:
struct.pack("i", 6277101735386680763835789423176059013767194773182842284081)
Это приводит к
ValueError: cannot fit 'int' into an index-sized integer
Я попробовал то же самое с некоторыми другими форматами ("L", "Q"), но те же привести к ошибкам:
struct.error: argument out of range
Если бы я мог преобразовать целое число в ровно 24 байта, я мог бы записать его в файл, так как я знаю, как это сделать. Однако я не могу преобразовать целые числа в байты.
Кроме того, как я могу убедиться, что ровно 24 байта записаны для целого числа? Я также буду писать меньшие числа (1000, 2000, 1598754, 12), однако они также должны принимать 24 байта.
И как я могу снова прочитать целые числа из файла?
http://code.activestate.com/recipes/576617-converting-arbitrary-size-python- integers-to-packe/ –