当前位置: 首页 > news >正文

Python中二进制文件操作

二进制文件的操作

  • 一、 二进制文件的打开方式
  • 二、 常用操作
    • 1. 读二进制文件 read()
    • 2. 写二进制文件 write()
    • 3. 移动文件指针的位置 seek()
    • 4. 获得当前文件指针的位置tell()
  • 三、 字节数据的相关内容

一、 二进制文件的打开方式

一般使用with语法,因为with自动实现了关闭文件不用再手动close()

with open("file_path", "rb") as f:data = f.read(10)print(data)
with open("file_path", "wb") as f:f.write(b'hello')

打开二进制文件必须指定open函数的打开参数为b,例如rbwbab等。

二、 常用操作

1. 读二进制文件 read()

读二进制文件使用read()函数

with open("file_path", "rb") as f:data = f.read(10)print(data)

上面代码表示从file_path路径下的文件中读取10字节内容。

2. 写二进制文件 write()

写向文件中写入二进制数据使用write()函数

with open("file_path", "wb") as f:f.write(b'hello')

上面代码表示向file_path路径下的文件中写入b'hello'内容。

3. 移动文件指针的位置 seek()

有时候我们并不是希望每次都从文件的开头进行操作,这时候就需要移动文件指针的位置,这就需要用到seek()函数了。

with open("file_path", "rb") as f:f.seek(-5, os.SEEK_END)data = f.read()

上面的操作完成了从文件末尾向前移动5个字节,并读取这五个字节的内容
seek(offset, whence)函数有两个参数:

  1. offset:偏移量,指移动位置
  2. whence:初始位置,即文件指针从哪里开始移动,os.SEEK_SET (0) 从文件开头开始移动,os.SEEK_CUR (1) 从当前位置开始移动,os.SEEK_END (2) 从文件末尾开始移动

有了这两个参数就可以移动文件指针到具体的位置了

4. 获得当前文件指针的位置tell()

有时候我们想要知道当前正在操作文件中的那个部分,这时候就需要知道文件指针的位置,获得文件指针的位置使用tell()函数tell函数返回一个int类型的值,表示的时当前文件指针相对文件开头的偏移量。

三、 字节数据的相关内容

python中是没有单独的byte对象的,单个byte也是以bytes对象的形式出现的,就像python中的char,没有单独的char对象,单个的char也是以str对象的形式出现的。

并且bytes也是不可修改的,可以修改的是bytearray

str可以和bytes对象之间相互转换

s = 'hello'
b = s.encode('utf-8')
s = b.decode('utf-8')
http://www.dtcms.com/a/304473.html

相关文章:

  • 快速了解逻辑回归
  • 【华为机试】43. 字符串相乘
  • 【LeetCode 随笔】
  • 【深度学习】独热编码(One-Hot Encoding)
  • 开源 Arkts 鸿蒙应用 开发(十一)证书和包名修改
  • C语言在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。
  • 信号上升时间与带宽的关系
  • Leetcode-3361两个字符串的切换距离
  • FastAPI入门:请求体的字段、嵌套模型、额外数据、额外数据类型
  • Linux系统部署k8s集群
  • 在 Web3 时代通过自我主权合规重塑 KYC/AML
  • Git快速入门,完整的git项目管理工具教程,git入门到精通!
  • 青少年软件编程图形化Scratch等级考试试卷(二级)2025年6月
  • 【EDA】Calma--早期版图绘制工具商
  • python案例:基于python 神经网络cnn和LDA主题分析的旅游景点满意度分析
  • 解决mac下git pull、push需要输入密码
  • 半导体企业选用的跨网文件交换系统到底应该具备什么功能?
  • 【007TG洞察】美欧贸易新政下跨境业务的技术破局:从数据治理到智能触达的全链路重构
  • SpringBoot整合RocketMQ(rocketmq-client.jar)
  • 小程序中事件对象的属性与方法
  • IT实施方案书
  • 【dropdown组件填坑指南】—怎么实现三角箭头效果
  • 网络安全第15集
  • 河南地区危化品安全员考试题库及答案
  • 【参考】Re
  • MYSQL难面试
  • 汇总数据(使用聚集函数)
  • Element Plus
  • AI数据管家:智能体如何像“超级助手”管理企业数据?
  • 宇树 G1 部署(九)——遥操作控制脚本 teleop_hand_and_arm.py 分析与测试部署