Python的文件处理
一、文件处理的流程
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以'\r\n'来换行,linux与unix以'\n'来换行
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\r\nbbb\r\nccc'
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\nbbb\nccc')
w.close()
rb = open('aaa','rb')
rb_seek = rb.seek(2)
rb1 = rb.read(4)
print(rb_seek)
print(rb1)
#结果:
2
b'a\r\nb'
高端示例:处理最后一行数据:
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()