Python关于换行符的一点资料
2017-03-30 12:54
204 查看
今天写一个Python脚本去读取一个txt文件时,发现一个很有趣的现象:
如果这个文件是用atom编辑器写的,发现换行符是’\r’。这样一来去逐行读取数据就失效了,因为用open函数 去打开该文件readline()时默认使用的换行符是’\n’。
但是,当这个txt文件是用pycharm编辑器写的话,其换行符就是’\n’了。一切正常。
查找资料发现,在打字机时代就有了这几个符号的设计,其实’\r’的本意是回到行首,’\n’的本意是换行。所以回车相当于做的是’\r\n’或者’\n\r’。到了计算机时代沿用了这个符号设计,但是估计是换行并回行首是一体的了基本上,所以出现了这几种设计:’\r’就是换行并回行首,’\n’就是换行并回行首,用’\r\n’表示换行并回行首。(Windows是’\r\n’,Linux是’\n’)
我使用的是python2.7,知乎上(感谢 龚奇源 博士)找到一种方法:
如果需要明文内容,请用rU来读取(强烈推荐),即U通用换行模式(Universal new line mode)。该模式会把所有的换行符(\r \n \r\n)替换为\n。只支持读入,但是也足够了。这是Python 提供给我们的最好的选择,没有之一。
open函数加上参数’rU’后,读取结果跟txt文件表现就一致了。
如果这个文件是用atom编辑器写的,发现换行符是’\r’。这样一来去逐行读取数据就失效了,因为用open函数 去打开该文件readline()时默认使用的换行符是’\n’。
但是,当这个txt文件是用pycharm编辑器写的话,其换行符就是’\n’了。一切正常。
查找资料发现,在打字机时代就有了这几个符号的设计,其实’\r’的本意是回到行首,’\n’的本意是换行。所以回车相当于做的是’\r\n’或者’\n\r’。到了计算机时代沿用了这个符号设计,但是估计是换行并回行首是一体的了基本上,所以出现了这几种设计:’\r’就是换行并回行首,’\n’就是换行并回行首,用’\r\n’表示换行并回行首。(Windows是’\r\n’,Linux是’\n’)
我使用的是python2.7,知乎上(感谢 龚奇源 博士)找到一种方法:
如果需要明文内容,请用rU来读取(强烈推荐),即U通用换行模式(Universal new line mode)。该模式会把所有的换行符(\r \n \r\n)替换为\n。只支持读入,但是也足够了。这是Python 提供给我们的最好的选择,没有之一。
open函数加上参数’rU’后,读取结果跟txt文件表现就一致了。
相关文章推荐
- 关于Select的一点资料
- 找到一点可怜的关于dojo资料,谢谢作者!
- 关于python类的一点心得
- 关于文档写作、幻灯片制作以及资料整理的一点见解
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 关于系分的一点资料
- 博弈论的一点资料,关于NIM和SG函数
- 关于LoadRunner的一点资料
- 关于LoadRunner的一点资料
- 关于Python IDE选择的一点个人见解
- 关于IP v6的一点中文资料
- 关于网站设计的一点资料1
- 关于网站设计的一点资料2
- 关于Linux&Python&线程&进程的一点随笔
- 关于python的一点问题
- 关于Google Talk Gadget一点资料~
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 关于GRUB收集的一点资料
- 关于博客在教学中的应用课题研究的一点小资料(2)。。
- 关于vim 做编辑器的一点资料