看板 Python 關於我們 聯絡資訊
各位好 小弟從 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
evanslify: http://goo.gl/F3HkDp 09/24 00:02
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