Python中二进制文件操作

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

一般使用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')
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值