python处理文件的换行符

 

我们知道在Windows平台下的换行符是\r\n,而在linux下的换行符是\n。现在写一个简单程序来测试python是如何处理这些换行符的。

准备文件data.txt,该文件在Windows平台下编辑。内容为:

程序:

path = sys.path[0]

name = 'data.txt'

li = []
with open(path + '/' + name) as f:
        for line in f:
                li.append(line)
               
print li

  

在window环境下的python2运行结果为:

['1\n', '1\n', '2\n', '3\n', '4']

对前面的代码进行一下修改,在window环境下的python3运行结果为:

['1\n', '1\n', '2\n', '3\n', '4']

到这里没什么问题,但是在Linux平台下运行该程序结果就不一样了。

在linux平台下用python2运行上述代码,结果为:

['1\r\n', '1\r\n', '2\r\n', '3\r\n', '4']

同样修改一下代码,用python3运行,结果为:

['1\n', '1\n', '2\n', '3\n', '4']

我们再来看一看python3.7官方文档:

 

结论:

 对Windows平台编辑的文件,在同样平台下的python2解释器,在读取文件时会将\r\n转换成\n,但在linux平台下的python2解释器就不会。

对于python3而言,不论windows和linux平台均会将特定的换行符转换为\n

补充:

在windows平台下,pandas读取文件的时候,并不会吧\r\n转换成\n,这一点要注意一下。

posted @ 2019-04-18 16:52  哦摩西罗伊  阅读(2399)  评论(0编辑  收藏  举报