二进制文件的读取和写入
二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,不过,我们需要
指定二进制模式,从而创建出二进制文件对象。例如:
f = open(r"d:\a.txt", 'wb') #可写的、重写模式的二进制文件对象
f = open(r"d:\a.txt", 'ab') #可写的、追加模式的二进制文件对象
f = open(r"d:\a.txt", 'rb') #可读的二进制文件对象
创建好二进制文件对象后,仍然可以使用 write()、read()实现文件的读写操作。
# 【操作】 读取图片文件,实现文件的拷贝
with open("aa.gif","rb")as f:
with open("aa.copy.gif","wb")as w:
for line in f.readlines():
w.write(line)
print("图片拷贝完成!")
文件对象的常用属性和方法
文件对象封装了文件相关的操作。在前面我们学习了通过文件对象对文件进行读写操作。
本节我们详细列出文件对象的常用属性和方法,并进行说明。
文件对象的属性
属性说明
name 返回文件的名字
mode 返回文件的打开模式
closed 若文件被关闭则返回 True
文件对象的打开模式
模式说明:
r 读模式
w 写模式
a 追加模式
b 二进制模式(可与其他模式组合)
- 读写模式(可以其他模式组合)
文件对象的常用方法
方法名 说明
read([size]) 从文件中读取size 个字节或字符的内容返回。若省略[size],则读
取到文件末尾,即一次读取文件所有内容
readline() 从文本文件中读取一行内容
readlines() 把文本文件中每一行都作为独立的字符串对象,并将这些对象放入
列表返回
write(str) 将字符串 str内容写入文件
writelines(s) 将字符串列表 s 写入文件文件,不添加换行符
seek(offset[,whence]) 把文件指针移动到新的位置, offset 表示相对于whence 的多少个
字节的偏移量;
offset:
off 为正往结束方向移动,为负往开始方向移动
whence 不同的值代表不同含义:
0: 从文件头开始计算(默认值)
1:从当前位置开始计算
2:从文件尾开始计算
"""
seek(offset[,whence])
把文件指针移动到新的位置,offset 表示相对于 whence 的多少个字节的偏移量;
offset:
off 为正往结束方向移动,为负往开始方向移动
whence 不同的值代表不同含义:
0: 从文件头开始计算(默认值)
1:从当前位置开始计算
2:从文件尾开始计算
"""
with open("e.txt","r",encoding="utf-8")as f:
print("文件名字是%s"%f.name)
print("读取到的内容是:%s"%f.readline())
print(f.tell())
f.seek(3,0) #seek(offset[,whence])
print("读取到的内容是:%s" % f.readline())
print(f.tell())
tell() 返回文件指针的当前位置
truncate([size]) 不论指针在什么位置,只留下指针前 size 个字节的内容,其余全
部删除;如果没有传入 size,则当指针当前位置到文件末尾内容全部删除
flush() 把缓冲区的内容写入文件,但不关闭文件
close() 把缓冲区内容写入文件,同时关闭文件,释放文件对象相关资源