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

如何使用numpy读取二进制文件的一部分?

如何解决如何使用numpy读取二进制文件的一部分?

您可以按正常方式对文件对象使用seek,然后在中使用此文件对象fromfile。这是一个完整的示例:

import numpy as np
import os

data = np.arange(100, dtype=np.int)
data.tofile("temp")  # save the data

f = open("temp", "rb")  # reopen the file
f.seek(256, os.SEEK_SET)  # seek

x = np.fromfile(f, dtype=np.int)  # read the data into numpy
print x 
# [64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
# 89 90 91 92 93 94 95 96 97 98 99]

解决方法

我正在将matlab脚本转换为numpy,但是从二进制文件读取数据时遇到一些问题。用于跳过文件开头fseek时是否有等价fromfile之处?这是我需要做的提取类型:

fid = fopen(fname);
fseek(fid,8,'bof');
second = fread(fid,1,'schar');
fseek(fid,100,'bof');
total_cycles = fread(fid,'uint32','l');
start_cycle = fread(fid,'l');

谢谢!

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