鱼C论坛

 找回密码
 立即注册
查看: 2817|回复: 3

[已解决]Python二进制文件数据读取中遇到的问题,求指教

[复制链接]
发表于 2023-1-4 16:41:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不爱小甲鱼 于 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[1,:]
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:51:37
不爱小甲鱼 发表于 2023-1-4 16:43
现在是想先把二进制文件读出来,转换成十进制。后面再考虑另存的事。
转换过程中遇到的问题
求指教

看下表,d是占8个字节的,2个d需要16个字节的数据,你的 data_f_re_2 才是读了两个字节出来,

更何况,你在前面已经读出了所有数据,文件指针已经到了文件末尾,你不调整指针的话一个字节都读不出来,

不信你 print 一下 data_f_re_2,它是空的

企业微信截图_1672822081507.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-4 16:43:03 | 显示全部楼层
现在是想先把二进制文件读出来,转换成十进制。后面再考虑另存的事。
转换过程中遇到的问题
求指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-4 16:51:37 | 显示全部楼层    本楼为最佳答案   
不爱小甲鱼 发表于 2023-1-4 16:43
现在是想先把二进制文件读出来,转换成十进制。后面再考虑另存的事。
转换过程中遇到的问题
求指教

看下表,d是占8个字节的,2个d需要16个字节的数据,你的 data_f_re_2 才是读了两个字节出来,

更何况,你在前面已经读出了所有数据,文件指针已经到了文件末尾,你不调整指针的话一个字节都读不出来,

不信你 print 一下 data_f_re_2,它是空的

企业微信截图_1672822081507.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-4 17:13:32 | 显示全部楼层
isdkz 发表于 2023-1-4 16:51
看下表,d是占8个字节的,2个d需要16个字节的数据,你的 data_f_re_2 才是读了两个字节出来,

更何况 ...

谢谢,我知道问题出在哪了。我再试试。跟我之前想的不一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 03:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表