可以传递给write()的最大Python对象是什么?
我在网上找资料(到目前为止我发现了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
我猜你的问题是,你创建的字符串太大,无法在内存中存放。对于这么大的数据,你应该把它分成小块,逐步写入磁盘。
你可以使用pickle、json、xml或者其他一些工具来正确处理这个问题。