一、文件处理的流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件
示例:
d = open('abc') data1 = d.read() print(data1) d.close()
二、关于文件处理的函数
readable() #对文件是否可读进行判断 readline() #读取文件一行 readlines() #把文件处理成列表的形式 writeable() #对文件是否可写进行判断 writelines() #将内容已列表的形式写入文件 write() #将内容写入文件 #注:写入的内容只能是字符串格式
示例1:文件的更改
read = open('aaa','r',encoding='utf-8') data = read.readlines() read.close() write = open('aaa','w',encoding='utf-8') write.write(data[0]) write.close()
示例2:文件的追加
add = open('aaa','a',encoding='utf-8') add.write('333333333333333333333') add.close()
三、文件处理’b’模式
1.文件不管以什么编码保存到硬盘上,都是以二进制方式存储,所以在读取时可以直接用二进制来读取,rb
2.rb,以二进制来读取,所以,不可以在使用encoding使用别的编码
3.关于换行,windows以'
'来换行,linux与unix以'
'来换行
4.对字符串进行编码-->encode,对二进制字节(bytes)进行解码—>decode
例:'b'模式进行查看
#源文件aaa内容: aaa bbb ccc ******************* b = open('aaa','rb') data = b.read() data1 = data.decode()
b.close()
print(data) print(data1) #结果: b'aaa bbb ccc' aaa bbb ccc
例:'b'模式进行写入
wb = open('aaa','wb') wb.write(bytes('aaa',encoding='utf-8')) wb.write('bbb'.encode('utf-8')) wb.close() #输出结果: #aaa文件内容为:aaabbb
四、seek的使用方法
file.seek()方法标准格式是:file.seek(offset,whence)
offset:开始的偏移量,也就是代表需要移动偏移的字节数
whence:给offset参数一个定义,表示要从哪个位置开始偏移;
0代表从文件开头开始算起。
1代表从当前位置开始算起。
2代表从文件末尾算起。
whence值为空没设置时会默认为0。
示例:
w = open('aaa','w') w.write('aaa bbb ccc') w.close() rb = open('aaa','rb') rb_seek = rb.seek(2) rb1 = rb.read(4) print(rb_seek) print(rb1) #结果: 2 b'a b'
高端示例:处理最后一行数据:
rb = open('abc','rb') chars = -20 for i in rb: while True: rb_seek = rb.seek(chars,2) rb_read = rb.readlines() if len(rb_read) > 1: print(rb_read[1]) break chars = chars*2
rb.close()