Python换行符问题:\r\n还是\n?

今天写一个Python脚本去读取一个txt文件时,发现一个很有趣的现象:

如果这个文件是用atom编辑器写的,发现换行符是'\r'。这样一来去逐行读取数据就失效了,因为用open函数 去打开该文件readline()时默认使用的换行符是'\n'。

但是,当这个txt文件是用pycharm编辑器写的话,其换行符就是'\n'了。一切正常。(Windows是'\r\n',Linux是'\n')

python3

在Python 3,可以通过open函数的newline参数来控制Universal new line mode:读取时候,不指定newline,则默认开启Universal new line mode,所有\n, \r, or \r\n被默认转换为\n ;写入时,不指定newline,则换行符为各系统默认的换行符(\n, \r, or \r\n, ),指定为newline='\n',则都替换为\n(相当于Universal new line mode);不论读或者写时,newline=''都表示不转换。