[问题] 关于二进制档案读取

楼主: ihaveaids   2015-09-23 23:12:54
各位好
小弟从 fortran 输出了一笔档案都是4bytes的浮点数想用python读取
由于知道资料格式
于是我以 struct.unpack('f',fid.read(4)) 为读取手段
(举例开启档案为 fid=open('dat.dat','rb')
也有考虑到fortran输出时包含的header和terminator)
每次读取4bytes 在进行转换
用这个方法档案小的时候还可以
但是档案大的时候就会很久
等于是档案内有几笔资料 循环就会跑几次
不知道各位大大是否还有其他比较快的方式读取二进制档案呢
感谢~
作者: evanslify (evs)   2015-09-24 00:02:00
作者: tiefblau (tiefblau)   2015-09-24 00:03:00
加速…大哉问 可能考虑档案大概多大、最终预期的结果输出要做啥等等
作者: uranusjr (←這人是超級笨蛋)   2015-09-24 00:31:00
如果你的档案没有到 GB 的话, 一次整个读进来再 unpack会快一些, 代价是内存用量; 要再更快就得用特殊技巧了
作者: Fungshui   2015-09-26 23:37:00
如果是很巨量的档案,或许可以考虑用HDF5之类格式来存取

Links booklink

Contact Us: admin [ a t ] ucptt.com