微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.bin文件的Python Big-Endian转换

如何解决.bin文件的Python Big-Endian转换

我正在尝试将Matlab代码转换为Python的二进制文件。请原谅我是这门语言的新手。

Matlab:

fileID = fopen('file_name.bin','r');
DC = fread(fileID,'single','b');

Python:

import numpy as np
with open('Duty_Cycle.bin','rb') as fid:
    data_array = np.fromfile(fid,np.float32,dtype = '>u4')
print(data_array)

结果:

TypeError: argument for fromfile() given by name ('dtype') and position (2)

如何解决错误

解决方法

fromfile的签名是

fromfile(file,dtype=float,count=-1,sep='',offset=0)

通过同时指定第二个位置参数np.float32和关键字参数dtype='>u4',您给相同的参数两次,因此出错。文档并不十分清楚,但是您可以使用字符串规范来指定类型和字节序。

data_array = np.fromfile(fid,dtype='>u4')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。