Python在非二进制形式读取文件时,自动把\r\n换成\n.(window下换行是\r\n)html
创建一个test1.txt文件,spa
aaaa bbbb
1.在utf8方式下读取code
读取四个字符htm
1 f=open('test1.txt','r',encoding='utf-8') 2 l1=f.read(4) 3 print(l1) 4 l=f.tell() 5 print(l) 6 f.close()
打印结果;blog
1 aaaa #读取四个字符 2 4 #光标移动四个字节
读取五个字符utf-8
1 f=open('test1.txt','r',encoding='utf-8') 2 l1=f.read(5) #不管read()仍是readline()以及readlines()都同样 3 print(l1) 4 l=f.tell() 5 print(l) 6 f.close()
打印结果;class
1 aaaa 2 3 6 #从这里能够看出光标移动了6个字节,Python默认把\r\n两个字符换成一个字符,也能够看出在碰到回车符时又往下读取了一个
2.在rb模式下读取test
没有对换行进行转换coding
1 f=open('test1.txt','rb') 2 l1=f.read(5) 3 print(l1) 4 l=f.tell() 5 print(l) 6 f.close()
打印结果:二进制
1 b'aaaa\r' 2 5
读取6个
1 f=open('test1.txt','rb') 2 l1=f.read(6) 3 print(l1) 4 l=f.tell() 5 print(l) 6 f.close()
1 b'aaaa\r\n' 2 6
3.readlines()读取更加明了
f=open('test1.txt','r',encoding='utf-8')
l1=f.readlines()
print(l1)
l=f.tell()
print(l)
f.close()
运行结果:
['aaaa\n', 'bbbb']
10
原文出处:https://www.cnblogs.com/snowony/p/11793278.html