python - 在python中读取二进制大端文件
问题描述
我想使用 python 读取 ieee big endian 64bit 浮点格式的大型二进制文件,但无法获取正确的值。我在matlab中有一个工作方法,如下:
fid=fopen(filename,'r','ieee-be');
data=fread(fid,inf,'float64',0,'ieee-be');
fclose(fid)
我在python中尝试了以下内容:
data = np.fromfile(filename, dtype='>f', count=-1)
此方法不会抛出任何错误,但它读取的值非常大且不正确。任何人都可以帮助阅读这些文件吗?提前致谢。
解决方案
使用>f
将为您提供单精度(32 位)浮点值。相反,尝试
data = np.fromfile(filename, dtype='>f8', count=-1)
推荐阅读
- cluster-analysis - 对有序变量进行聚类的适当方法
- elasticsearch - JHipster Elasticsearch 无法在 Kubernetes 上启动
- python - 通过组合列表和字符串创建字符串列表
- php - 如何在 CodeIgniter 中使用 php 翻转图像
- java - 添加带有多行文本但两行都具有中心段落对齐的按钮
- php - PHP 启动:运行单元测试时无法加载动态库
- c# - 为什么 Main 在旋转新线程时等待,但在任务中却不是这样
- java - javassist 的 Weblogic 类加载问题
- nginx - Nginx - proxy_pass 到谷歌存储桶不使用索引指令
- javascript - 如果输入了某些单词但仍允许他们提交,则提醒用户