Python二进制文件数据读取中遇到的问题,求指教
本帖最后由 不爱小甲鱼 于 2023-1-4 16:45 编辑with open(filepath,'rb') as f1:
data_f = f1.read()
data_f_re_2 = f1.read(2)
# print(data_f_re_2)
data_f_len = len(data_f)
data_f_row = math.floor(data_f_len/360)
data_f_re = np.broadcast_to(data_f, (data_f_row, 360))
data_f_re_1 = data_f_re
print(type(data_f_re))
print(len(data_f_re_1))
for i in range(360):
data_f_re_2_s = struct.unpack('dd', data_f_re_2)
print(data_f_re_2_s)
Traceback (most recent call last):
File "D:/python_demo/mz/vib.py", line 33, in <module>
data_f_re_2_s = struct.unpack('dd', data_f_re_2)
struct.error: unpack requires a buffer of 16 bytes
<class 'numpy.ndarray'>
360 现在是想先把二进制文件读出来,转换成十进制。后面再考虑另存的事。
转换过程中遇到的问题
求指教 不爱小甲鱼 发表于 2023-1-4 16:43
现在是想先把二进制文件读出来,转换成十进制。后面再考虑另存的事。
转换过程中遇到的问题
求指教
看下表,d是占8个字节的,2个d需要16个字节的数据,你的 data_f_re_2 才是读了两个字节出来,
更何况,你在前面已经读出了所有数据,文件指针已经到了文件末尾,你不调整指针的话一个字节都读不出来,
不信你 print 一下 data_f_re_2,它是空的
isdkz 发表于 2023-1-4 16:51
看下表,d是占8个字节的,2个d需要16个字节的数据,你的 data_f_re_2 才是读了两个字节出来,
更何况 ...
谢谢,我知道问题出在哪了。我再试试。跟我之前想的不一样。
页:
[1]