我有一個包含 64 位 IEEE 浮點數據的數據文件。我使用 Python array 模塊創建了它:float_array = array('d', data_list)float_array.tofile(out_fname)其中 data_list 是一個包含整數的簡單 Python 列表?,F在我想打開那個文件并從中讀取。我試過這個:fname = 'C:\Data_Files\Python64_Float'file_object = open(fname, "rb")我嘗試通過兩種方式閱讀它:data = struct.unpack('f', file_object.read(4))ANDdata = file_object.read()但在這兩種情況下,它都返回一個零數組,這不是文件包含的內容。我可以用另一個工具打開和讀取這個文件,但我需要用 Python 來讀取它。我也嘗試用 array.fromfile 讀取它,但 Visual Studio 說“模塊‘array’沒有屬性‘fromfile’——但根據 array 模塊上的 Python 站點,它確實有一個 fromfile 屬性。所以我的問題是:如何將 Python array 模塊創建的文件讀取為 64 位浮點數?
1 回答

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
您需要將列表作為字節寫入文件,然后使用array.frombytes方法讀取它。
這是一個完整的例子:
寫作
import array
data_list = [1, 2, 3, 4]
float_array = array.array('d', data_list)
# write float_array as bytes
with open("Python64_Float", "wb") as fout:
float_array.tofile(fout)
閱讀
現在,array.frombytes像這樣閱讀它:
import array
another_float_array = array.array('d', [])
with open("Python64_Float", "rb") as fin:
another_float_array.frombytes(fin.read())
print(another_float_array)
#array('d', [1.0, 2.0, 3.0, 4.0])
添加回答
舉報
0/150
提交
取消