标签:二进制 图片 isp mic 指定 flush 目录 不能 前言
f = open(‘demo.txt‘,‘r‘,encoding=‘utf-8‘)#获得文件句柄,指定编码格式,以可读的形式打开 data = f.read() print(data) f.close()#关闭文件
注:open()默认根据系统编码,默认以‘可读’(r)的形式打开文件
readable():判断文件是否可读
writeable():判断文件是否可写
close():关闭文件句柄
tell():返回光标位置
flush():将内容存到硬盘中
read()
data = f.read()#返回得到文件内容
readline()
data = f.readline()#返回文件的一行内容
readlines()
data = f.readlines()#返回一个列表,每个元素为文件的每一行
write()
f.write(‘hello‘)#写入内容
writelines()
f.writelines([‘chen\n‘,‘hua\n‘,‘li\n‘])#写入一列内容
truncate()
注:文件必须要有写的操作
f.truncate(10)#截取文件前10个字节
"b"模式下的写操作
f = open(‘demo.txt‘,‘wb‘)
#必须将将内容转换成二进制的形式存入文件中 f.write(bytes(‘chen‘,encoding=‘utf-8‘)) f.write(‘chen‘.encode(‘utf-8‘))
注:只有read()的光标是以字符为单位,其他seek,tell,truncate都是以字节为单位移动;window下的换行符是(\r\n)
使用seek()方法读取日志文件最近一天的内容
2016/2/3 xxx做了什么事 2016/2/4 xxx做了什么事 2016/2/5 xxx做了什么事 2016/2/6 xxx做了什么事 2016/2/7 xxx做了什么事 2016/2/8 xxx做了什么事 2016/2/9 xxx做了什么事 2016/2/10 xxx做了什么事 2016/2/11 xxx做了什么事 2016/2/12 xxx做了什么事 2016/2/13 xxx做了什么事 2016/2/14 xxx做了什么事 2016/2/15 chen做了厉害的事
方案一
f = open(‘日志文件‘,‘rb‘) data = f.readlines() print(data[-1].decode(‘utf-8‘))
f.close()
缺点:readlines()会将文件组成一个大列表,占用大量内存
方案二
f = open(‘日志文件‘,‘rb‘) offs = -5 while True: f.seek(offs, 2) data = f.readlines() if len(data) > 1: print(‘文件的最后一行是%s‘ % (data[-1].decode(‘utf-8‘))) break offs *=2
f.close()
标签:二进制 图片 isp mic 指定 flush 目录 不能 前言
原文地址:https://www.cnblogs.com/shuzhixia/p/9796782.html