作者ihaveaids ()
看板Python
标题[问题] 关於二进位档案读取
时间Wed Sep 23 23:12:54 2015
各位好
小弟从 fortran 输出了一笔档案都是4bytes的浮点数想用python读取
由於知道资料格式
於是我以 struct.unpack('f',fid.read(4)) 为读取手段
(举例开启档案为 fid=open('dat.dat','rb')
也有考虑到fortran输出时包含的header和terminator)
每次读取4bytes 在进行转换
用这个方法档案小的时候还可以
但是档案大的时候就会很久
等於是档案内有几笔资料 回圈就会跑几次
不知道各位大大是否还有其他比较快的方式读取二进位档案呢
感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.234.187.155
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1443021176.A.5C0.html
2F:→ tiefblau: 加速…大哉问 可能考虑档案大概多大、最终预期的结 09/24 00:03
3F:→ tiefblau: 果输出要做啥等等 09/24 00:03
4F:→ uranusjr: 如果你的档案没有到 GB 的话, 一次整个读进来再 unpack 09/24 00:31
5F:→ uranusjr: 会快一些, 代价是记忆体用量; 要再更快就得用特殊技巧了 09/24 00:32
6F:→ Fungshui: 如果是很巨量的档案,或许可以考虑用HDF5之类格式来存取 09/26 23:37