|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 负离负离子 于 2020-2-26 16:12 编辑
最近在为了机试研究题目,可是第一步就碰到问题了
现在是有20000个数存储于二进制文件中,要读取出来
我知道要用rb的方式来读
- with open('data.dat', 'rb') as file_handle:
- nums = file_handle.read()
复制代码
可是这样做完之后nums是一个bytes类型
len(nums) = 80000似乎是说一个数字有4个字节(存疑)
那么我该怎么把他们一个一个读取出来并丢到列表里面呢
或者说该怎么处理这个bytes类型
链接:https://pan.baidu.com/s/1HKIZ-7EMI1GQEp6adoxQOg
提取码:jtl7
因为没有找到怎么添加文件,我就用云盘吧,麻烦各位了
- import struct
- with open('data.dat', 'rb') as file_handle:
- all_num = []
- while True:
- get_num = file_handle.read(4) #每次读取四字节的数据
- if (get_num == b''): #判断是否为文件结尾,在文件结尾时,会读取到(b'')
- break
- num = struct.unpack('I', get_num) #将结果按照格式进行解析, 'I'表示unsigned int
- all_num.append(num[0]) #将结果添加到all_num中,这里num是一个tuple,即(x,)类型的数据
- print(all_num)
复制代码
|
|