我们知道在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,这一点要注意一下。

最新文章

  1. C# 词法分析器(五)转换 DFA
  2. Android下载图片/调用系统相机拍照、显示并保存到本地
  3. MyEclipse------如何查询MySQL数据库里面表的信息
  4. 制作支持UEFI PC的Server2008 R2系统安装U盘
  5. <Araxis Merge>快速一览文件的比较与合并
  6. MySQL float 与decimal 各中的区别。
  7. JAVA设计模式(09):结构化-代理模式(Proxy)
  8. UVa 1354 Mobile Computing | GOJ 1320 不加修饰的天平问题 (例题 7-7)
  9. 关于Vue的各个UI框架(elementUI、mint-ui、VUX)
  10. Cocos2D:塔防游戏制作之旅(六)
  11. count性能
  12. SASS学习笔记!(持续学习中..)
  13. ZOJ 1109 Language of FatMouse 【Trie树】
  14. 9.26 H5日记
  15. Singleton单例对象的使用
  16. iOS - 网址、链接、网页地址、下载链接等正则表达式匹配(解决url包含中文不能编码的问题)
  17. Numpy 基础知识
  18. 【BZOJ】【1006】【HNOI2008】神奇的国度
  19. Hidden Markov Model Toolbox for Matlab
  20. JMeter之分布式部署

热门文章

  1. linux之测试硬盘速度篇
  2. C/JS_实现选择排序
  3. 【LCA&倍增】货物运输 @upcexam5909
  4. log4j2发送消息至Kafka
  5. Delphi 之弹出气泡消息提示
  6. ImportError: No module named _tkinter on macos
  7. php : 文件及文件夹操作(创建、删除、移动、复制)
  8. mac ssh 连接超时
  9. Linux下通过server-status监控性能
  10. 唯一ID算法之:snowflake(Java版本)