没有合适的资源?快使用搜索试试~ 我知道了~
Python二进制文件读取并转换为浮点数详解
5星 · 超过95%的资源 54 下载量 158 浏览量
2020-09-19
05:52:35
上传
评论 1
收藏 50KB PDF 举报
温馨提示
试读
2页
主要介绍了Python二进制文件读取并转换为浮点数详解,用python读取二进制文件,这里主要用到struct包,而这个包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以参考下
资源推荐
资源详情
资源评论
Python二进制文件读取并转换为浮点数详解二进制文件读取并转换为浮点数详解
主要介绍了Python二进制文件读取并转换为浮点数详解,用python读取二进制文件,这里主要用到struct包,而
这个包里面的方法主要是unpack、pack、calcsize。,需要的朋友可以参考下
本文所用环境:
Python 3.6.5 |Anaconda custom (64-bit)|
引言引言
由于某些原因,需要用python读取二进制文件,这里主要用到struct包,而这个包里面的方法主要是unpack、pack、
calcsize。详细介绍可以看:Python Struct 官方文档。这里主要讨论,python二进制转浮点数的操作。
python中一个float类型的数占4个字节。
二进制数据转float,可以用struct.unpack()来实现。
小文件读取小文件读取
较小的文件,可以一次读取:
首先导入所需的包:
import numpy as np
import struct
Python
例如:我需要读取一个名为filename,存放着形状为[100,1025]的浮点数的文件。可以采用以下办法
# 加载测试数据
f = open('filename','rb')
# 102500为文档中包含的数字个数,而一个浮点数占4个字节
data_raw = struct.unpack('f'*102500,f.read(4*102500))
f.close()
verify_data = np.asarray(verify_data_raw).reshape(-1,1025)
大文件处理方法大文件处理方法
我需要处理的文件大小有38.1G,存放着[10000000,1025]大小的向量。
关于大文件的处理,我参考了这文章,但是,这个方法不能很好的将二进制文件转换成浮点数。
所以我想到了另外一种办法:
通过通过Linux命令切割文件命令切割文件
通过split命令将38.1G的文件按照指定大小切割,
split -b 820000k -a 2 filename data_
上述代码的意思是,指定每块大小为820000k,-a 2代表2位数命名,‘data_'代表前缀是'data_'
最终生成49个文件(字典序 aa – bw),前48个文件每个204800行 最后一个文件 169600行
通过通过python循环读取文件循环读取文件
首先构建词汇表:
voc = ['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x',
'y','z']
voc_short = ['a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v']
资源评论
- 牛站长2023-07-26:这篇文章深入浅出地介绍了Python如何读取二进制文件并转换为浮点数,让我从中受益匪浅。
- 张景淇2023-07-26:这个文件的讲解很通俗易懂,对于刚入门的Python初学者来说非常友好,很容易理解。
- kdbshi2023-07-26:作者结合自己的经验,把理论和实际场景相结合,让我对Python读取二进制文件有了全新的认识和理解。
- 那你干哈2023-07-26:作者的解说十分简洁明了,没有使用复杂的术语,让人不会产生学习上的困惑。
- 王向庄2023-07-26:这篇文章的代码示例给出了实际可行的方法,让我可以直接在实际项目中运用,实用性很强。
weixin_38742520
- 粉丝: 15
- 资源: 940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Wireshark-4.2.4-x64.zip
- 2022年11月软件设计师上
- 基于VB+ACCESS教学管理系统(参考文献+源代码).zip
- 一个工具的流程图 demo
- EMC3080的用于连接FogCloud的固件
- 基于VB+Access酒店客房管理系统(源代码+参考文献+报告).zip
- 应用笔记LAT1244+奇怪的NRST+管脚异常复位问题
- SEMI标准的解释说明
- tensorflow-2.8.2-cp37-cp37m-manylinux2010-x86-64.whl
- tensorflow-rocm-2.12.0.560-cp311-cp311-manylinux2014-x86-64.whl
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功