LINUX.ORG.RU

Ответ на: комментарий от hizel

>import struct

binfile = open('bin.dat', 'wb')

for num in range(50):


data = struct.pack('i', num)



Сколько ни смотрел — так и не нашел, где собственно производится запись в файл.
То ли этот ваш пайтон такой сложный, то ли я такой тупой :(

nnz ★★★★
()

что значит «реально представление»?
Я думаю, реальное представление интежера в питоне это целый объект, с меткой типа, метаинформацией и прочим. Т.е. это не просто «байты».
И даже если были бы просто байты - стоял бы как минимум вопрос об endianness.

Love5an
()
Ответ на: комментарий от Love5an

и чо ? Человек хочет инт записать как есть, тебе не пофиг на ендианес(если он в питоновском представлении инта есть вообще)

Jetty ★★★★★
()

>их реальное представление в памяти

А может тебе нужен будет pickle?

anonymous
()
Ответ на: комментарий от Love5an

Я вам открою страшную тайну - инта «как есть» нет нигде. Всегда могут быть варианты представления (тот же endianness).

shylent
()
Ответ на: комментарий от shylent

>Нет, аноним ошибается. Нет таких вещей, для которых хорош pickle.

Аноним, имхо, прав. Потому что pickle позволяет легко записать питоновский объект и получить обратно питоновский же объект.

Ведь аноним предположил, что автору не нужно именно записывать «чистые» данные, а ему хочется просто записать и потом прочитать сразу в питоновский объект.

anonymous
()
Ответ на: комментарий от anonymous

Видите ли, уважаемый аноним, это больше идеологический вопрос, нежели чисто технический. Я не буду смущать вас подробностями реализации pickle/cpickle (а также недостатками этой реализации) - об этом и о многом другом вы можете прочитать в документации python, но, если совсем кратко, то pickle сериализует код, тогда как тут речь идет, все же, о хранении данных.

Я считаю, что в 99.9% случаев, при необходимости «сохранить» какие-либо данные, следует воспользоваться соответствующим ситуации методом сериализации, например, записать данные «просто в файл» (в виде текста или binary через struct), sqlite, xml/json/yaml и т.д. Способов достаточно.

shylent
()

Реальное представление объекта в памяти - pickle.
То, что ты называешь реальным представлением int'ов в памяти - struct.

tia
()
Ответ на: комментарий от shylent

>Я считаю, что в 99.9% случаев, при необходимости «сохранить» какие-либо данные, следует воспользоваться соответствующим ситуации методом сериализации, например, записать данные «просто в файл» (в виде текста или binary через struct), sqlite, xml/json/yaml и т.д. Способов достаточно.

Тут скорее вопрос в том, для чего их надо сохранять. По мне так в pure-python программе проще всего именно pickle - уж очень ненапряжно с ним работать, если не пытаться мучать сильно навороченные объекты. Положил в файл, а потом прочитал - и сразу можно пользоваться результатом, без парсинга, разборов байтов и прочего.

Естественно, если цель не «быстрое использование», а что-то более сложное, то pickle тут не подходит.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.