[問題] 關於二進位檔案讀取

作者: 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