Python 将可变大小的数组写入文件

Python 将可变大小的数组写入文件,python,hdf5,Python,Hdf5,我正在开发一个python程序,它需要向文件中写入一些“时间步长-数量”形式的数据。数据的大小在运行时确定。现在我这样做(示意图): f=open('data.txt','w') 虽然不是条件: 时间步长+=1 q=计算_q() f、 写入({0:d}{1:3e})。格式(时间步长,q)) 我的问题:这样做可以吗?或者我应该以某种方式缓冲数据,然后将缓冲区转储到文件中?如果我切换到二进制格式,如hdf5,该怎么办?谢谢。这取决于您的需要。如果您关心吞吐量,那么应该缓冲写入。使用的bufferi

我正在开发一个
python
程序,它需要向文件中写入一些“时间步长-数量”形式的数据。数据的大小在运行时确定。现在我这样做(示意图):

f=open('data.txt','w')
虽然不是条件:
时间步长+=1
q=计算_q()
f、 写入({0:d}{1:3e})。格式(时间步长,q))

我的问题:这样做可以吗?或者我应该以某种方式缓冲数据,然后将缓冲区转储到文件中?如果我切换到二进制格式,如
hdf5
,该怎么办?谢谢。

这取决于您的需要。如果您关心吞吐量,那么应该缓冲写入。使用的
buffering
参数。

您看过
pickle/cPickle
了吗,它们往往会涵盖大多数写入问题,但这取决于数据类型。将其视为伪代码:为什么不可以?您似乎关心性能,但这只会在数据量巨大和/或程序运行非常频繁时困扰您。缓冲通常是不必要的-操作系统很可能会充分处理它。最后,从文本文件格式切换到二进制文件格式也应该只在真正需要的情况下进行。您的示例很好--文件I/O使用标准文件对象自动缓冲。谢谢大家,这就是我想让它了解的-缓冲是否自动完成,因为,很明显,我不想对磁盘进行频繁的小规模写入。谢谢!我不知道这个参数。