Максимальный объект Python, который может быть передан в write () - PullRequest
1 голос
/ 02 октября 2011

Я просматриваю сеть (пока я нашел pickle ) для объяснения того, что я делаю неправильно

Я пытаюсь написать очень большую структуру данных (вложеннаясловарь / список) в файл.Используя приведенный ниже код, я обнаружил, что проблема может быть в том, что переданная строка слишком велика:

f = open('/path/to/file' , 'w')

try:
 f.write(str(dataStructure))
except:
 try:
  f.write('ABC')
 except:
  print 'Even smaller strings such as ABC did NOT print to the file'
 else:
  print 'Smaller strings such as ABC DID print to the file'

словарь dataStructure содержит много информации о кликах, в данном случае около 10 000 - 100 000 плавающихточечные значения.Причина, по которой я записываю все в один файл вместо сохранения в подфайлах, заключается в том, что я хочу выполнить один файл для его загрузки, а не загружать вручную несколько десятков подмножеств файла.

Прежде чем яначать сохранение каждой клики (у каждого нейрона есть несколько разных входящих файлов кликов, так что для нейрона мы просматриваем 20 проиндексированных файлов) Мне было интересно, был ли размер файла на самом деле проблемой, или проблема должна быть в чем-то другом.

Спасибо

1 Ответ

4 голосов
/ 02 октября 2011

Я предполагаю, что ваша проблема в том, что создаваемая вами строка слишком велика, чтобы существовать в памяти.Для чего-то такого большого вы должны записать это на диск по частям.

Вы можете использовать pickle, json, xml или что-то еще, что должно обрабатывать это правильно.

...