http://www.cnblogs.com/linhaifeng/articles/5984922.html
f=open('b.txt','r+',encoding='utf-8',newline='') #读取文件中真正的换行符号 f.flush() #讲文件内容从内存刷到硬盘 f.closed #文件如果关闭则返回True f.encoding #查看使用open打开文件的编码 f.tell() #查看文件处理当前的光标位置 f.seek(3) #从开头开始算,将光标移动到第三个字节 f.truncate(10) #从开头开始算,将文件只保留从0-10个字节的内容,文件必须以写方式打开,但是w和w+除外
seek方法补充: #模式0(默认就是模式0),光标从文件的初始位置开始 f=open('seek.txt','r',encoding='utf-8') print(f.tell()) f.seek(10) print(f.tell()) f.seek(3) print(f.tell()) 运行结果: 0 10 3 #模式1,光标从文件的上一次的位置开始 f=open('seek.txt','rb') print(f.tell()) f.seek(10,1) print(f.tell()) f.seek(3,1) print(f.tell()) 运行结果: 0 10 13 #模式2 光标从最后开始反向往前 f=open('seek.txt','rb') f.seek(-3,2) print(f.tell()) 运行结果: 20
#读取文件最后一行 #方法一: f=open('日志文件','rb') data=f.readlines() print(data[-1].decode('utf-8')) 运行结果: 2016/12/30 sb 干了件sb事情 #这样需要读取整个文件到内存,不推荐 #循环文件的推荐方式 这样文件是一行一行读取 f=open('日志文件','rb') for i in f: print(i) #方法二: f=open('日志文件','rb') for i in f: offs=-10 while True: f.seek(offs,2) data=f.readlines() if len(data) > 1: print('文件的最后一行是%s' %(data[-1].decode('utf-8'))) break offs*=2