作者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://www.ptt.cc/bbs/Python/M.1443021176.A.5C0.html
→ tiefblau: 加速…大哉問 可能考慮檔案大概多大、最終預期的結 09/24 00:03
→ tiefblau: 果輸出要做啥等等 09/24 00:03
→ uranusjr: 如果你的檔案沒有到 GB 的話, 一次整個讀進來再 unpack 09/24 00:31
→ uranusjr: 會快一些, 代價是記憶體用量; 要再更快就得用特殊技巧了 09/24 00:32
→ Fungshui: 如果是很巨量的檔案,或許可以考慮用HDF5之類格式來存取 09/26 23:37