今天写一个Python脚本去读取一个txt文件时,发现一个很有趣的现象:
- 用atom编辑器写的txt文件,发现换行符是’\r’。
- 用pycharm编辑器编写的txt文件,发现换行符是’\n’。
- python用open函数去打开相应文件,readline()时默认使用的换行符是’\n’,所以读取atom编写的文件会出异常不分行了
查找资料
在打字机时代就有了这几个符号的设计,其实’\r’的本意是回到行首,’\n’的本意是换行。所以回车相当于做的是’\r\n’或者’\n\r’。到了计算机时代沿用了这个符号设计,但是估计是换行并回行首是一体的了基本上,所以出现了这几种设计:’\r’就是换行并回行首,’\n’就是换行并回行首,用’\r\n’表示换行并回行首。
- Windows是’\r\n’
- Linux是’\n’
python编辑处理文件时,如何定义换行符
如果需要明文内容,请用rU来读取(强烈推荐),即U通用换行模式(Universal new line mode)。该模式会把所有的换行符(\r \n \r\n)替换为\n。只支持读入,但是也足够了。这是Python 提供给我们的最好的选择,没有之一。
open函数加上参数’rU’后,即便是atom编辑的文件读取结果也是能识别换行的。