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
,例如rb
、wb
、ab
等。
二、 常用操作
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)
函数有两个参数:
offset
:偏移量,指移动位置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')