python处理文件的换行符

我们知道在Windows平台下的换行符是 ,而在linux下的换行符是 。现在写一个简单程序来测试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 ', '1 ', '2 ', '3 ', '4']

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

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

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

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

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

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

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

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

结论:

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

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

补充:

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

原文地址:https://www.cnblogs.com/mlgjb/p/10722476.html