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

看板Python作者時間8年前 (2015/09/23 23:12), 編輯推噓0(006)
留言6則, 4人參與, 最新討論串1/1
各位好 小弟從 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

09/24 00:02, , 1F
09/24 00:02, 1F

09/24 00:03, , 2F
加速…大哉問 可能考慮檔案大概多大、最終預期的結
09/24 00:03, 2F

09/24 00:03, , 3F
果輸出要做啥等等
09/24 00:03, 3F

09/24 00:31, , 4F
如果你的檔案沒有到 GB 的話, 一次整個讀進來再 unpack
09/24 00:31, 4F

09/24 00:32, , 5F
會快一些, 代價是記憶體用量; 要再更快就得用特殊技巧了
09/24 00:32, 5F

09/26 23:37, , 6F
如果是很巨量的檔案,或許可以考慮用HDF5之類格式來存取
09/26 23:37, 6F
文章代碼(AID): #1M0i5uN0 (Python)