Найти - Пользователи
Полная версия: Создание бинарных файлов
Начало » Python для новичков » Создание бинарных файлов
1
neuron
Ребята, есть вопрос касательно создания бинарных файлов в python. А именно, мне нужно записать некоторое количество чисел в бинарный файл… Интересные грабли возникают тут: когда я записываю в файл ‘\x00’, файл считается бинарным… А если я записываю в файл ‘\x31’, файл сохраняется как текстовый и содержит цифру 1.
Вопроса собственно два:
1) Как число преобразовать в его байтовое представление(и нужно ли вообще это для записи) ?
2) Как записывать чтобы после записи файл был бинарным а не текстовым.

з.ы. Надеюсь ничего не перемудрил… Вообщем если есть что сказать по этому поводу, не поленитесь помочь :))
Striver
Нужно открывать файл на запись не так
open('file.bin','w')

а так
open ('file.bin','bw')


Но, вообще-то любой файл можно открыть в текстовом редакторе, и если в нём только один байт ‘\x31’, то там он будет выглядеть текстом - цифрой “1”. В этом нет ничего ужасного. Важно только, чтобы читающая программа его понять смогла.
neuron
>> open ('file.bin','bw')

Я так и открываю.

>> Но, вообще-то любой файл можно открыть в текстовом редакторе, и если в нём только один байт ‘\x31’, то там он будет выглядеть текстом - цифрой “1”. В этом нет ничего ужасного. Важно только, чтобы читающая программа его понять смогла.

Проблема то в том что с ‘\x31’ проблем нет, это только пример, проблемы начинаются когда я захочу сохранить 12345, в языке это целочисленный тип (например 4 байта) а в тексте это число займёт 5 байт, вот тут то возникают и проблемы.
Viper
Пакуешь число с помощью struct и записываешь в файл.
neuron
Огромное спасибо :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB