关于Python文件读取时,默认把\r\n换成\n


Python在非二进制形式读取文件时,自动把\r\n换成\n.(window下换行是\r\n)

建立一个test1.txt文件,

aaaa
bbbb

1.在utf8方式下读取

读取四个字符

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()

打印结果;

1 aaaa     #读取四个字符
2 4        #光标移动四个字节

读取五个字符

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()

打印结果;

1 aaaa
2 
3 6         #从这里可以看出光标移动了6个字节,Python默认把\r\n两个字符换成一个字符,也可以看出在碰到回车符时又往下读取了一个

2.在rb模式下读取

没有对换行进行转换

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM