可以传递给write()的最大Python对象是什么?

1 投票
1 回答
1012 浏览
提问于 2025-04-17 03:32

我在网上找资料(到目前为止我发现了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或者其他一些工具来正确处理这个问题。

撰写回答