【时间】2018.11.14

【题目】在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别

一、去除换行符

以使用readline进行读取为例:

import redata =[]f = open("data.txt", "r")line = f.readline() # 读取一行文件,包括换行符# line = line[:-1]  # 去掉换行符(方法1)#line = re.sub('\n','',line) #方法2line = line.strip() #方法3data.append(line)while line:  # 直到读取完文件line = f.readline()# line = line[:-1]#line = re.sub('\n','',line)line = line.strip() if line != '':data.append(line)f.close()print(data)

二、在Windows与Linux中的区别

2.1windows

在window中,只要按照上面的代码即可去除换行符,即“\n”会直接被去掉,如下:

没有去掉换行符时:

去掉换行符后:

2.2.Linux

在Linux中,若直接去掉换行符(方法1与方法2),“\n”不会直接被去掉,而是会被‘\r’(回车符)代替,如下:

当然此时若再使用strip()也可以将‘\r’去除。

如果使用方法3,即用strip(),则可以去除:

所以建议使用方法3去除换行符。


2018.11.24补充

三、在Windows与Linux中换行符有所区别的原因

这主要是两种系统的换行符不同导致的,其中Linux的换行符时\n,而Windows的换行符是\r\n(就是说当你在文本编辑器中敲下回车键或者在代码中(w模式下)使用write(‘\n’)命令写入换行时,‘\n’会自动转换为‘\r\n’,读取时‘\r\n’会自动转换为‘\n’),当代码中的open是以‘r’模式打开时,两者没有区别,都是显示\n,而当以二进制模式‘rb’打开时,就会显现出不同。下面是在Windows和Linux中的测试(data.txt都是直接用各自系统的文本编辑器输入内容的。):

代码:

f = open('data.txt','r')
print(list(f))
f = open('data.txt','rb')
print(list(f))

Windows中运行结果:

Linux中运行结果:

因此,第二节中之所以出现在Linux中去除结尾的\n还剩下\r,是因为博主测试时的data.txt文件都是在Windows中编辑的,所以换行符在Windows中以文本方式显示是\n,在Linux中以文本方式显示的是\r\n。

在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别相关推荐

  1. python怎么去掉换行符_在Python中,如何去除行末的换行符?

    原标题:在Python中,如何去除行末的换行符? 在python中读取文件时,如何去除行末的换行符?以及在Windows与Linux中的区别? 一.去除换行符 以使用readline进行读取为例: i ...

  2. python readline_python3读取文件时readline()和read()的区别

    先贴一下python读写文件的基本语句: 其他文件读写语句可参看:http://www.nnzhp.cn/blog/2016/12/19/python学习笔记三文件操作和集合/ 先写一个read()和 ...

  3. python按行读取文件取消空白行_在Python中读取文件时忽略空行的最简单方法

    我将堆栈生成器表达式:with open(filename) as f_in: lines = (line.rstrip() for line in f_in) # All lines includi ...

  4. Sublime Text保存文件时自动去掉行末空格

    1.安装DeleteBlankLines 插件 通过ctrl+shift+p组合键打开命令面板 输入install packge后回车 输入DeleteBlankLines后回车进行安装 Sublim ...

  5. python无法读取文件-Python读取文件

    ========== 本文记录使用Python在读取文件时的一些心得体会. 不能decode bytes 使用open方法读取文件时,经常会遇到这样的问题: UnicodeDecodeError: ' ...

  6. Linux从某个字符串处换行,Windows和Linux中任意字符串替换成换行符的问题

    在Windows中经常碰到要把任意符号转换成回车符的问题,在Linux中这个问题很容易解决: \r 回车 \n 换行 Linux中\n表示一个新的行,Windows中\r\n表示一个新的行. sed ...

  7. python读取数据文件夹_使用python依次读取文件中的所有csv格式的数据

    使用python依次读取文件中的所有csv格式的数据: #coding=gbk import pandas as pd import os path = r'D:\ml_datasets\PHM\c6 ...

  8. python中读取文件过程中seek()函数的使用

    python中读取文件过程中seek()函数的使用 目录 概述: 语法: 参数: 返回值: 实例: 概述: seek() 方法用于移动文件读取指针到指定位置. 语法: seek() 方法语法如下: 文 ...

  9. Python读取文件时出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position xx: 解决方案

    Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案 参考文章: (1)Py ...

最新文章

  1. 使用深度神经网络进行自动呼叫评分(二)
  2. 计算机网络系统中hn是,中南大学计算机网络作业1.pdf
  3. 从 2017 ChinaJoy 谈起,中国游戏如何数据化前行
  4. QT学习:代理(Delegate)练习
  5. phpcms漏洞总结
  6. 【转】ITK和VTK比较
  7. 如何实现动态水球图 --》 echars结合echarts-liquidfill实现
  8. java中的 =运算符_(二十七)、java中的运算符
  9. 关于git diff的一个命令
  10. oracle19c二次安装报错,Windows10安装Oracle19c数据库详细记录(图文详解)
  11. AngularJS支持的事件
  12. KVC 与 KVO 理解
  13. android studio使用方法,android studio使用教程
  14. 苹果鼠标右键怎么按_如何在Mac上使用多点触控手势?苹果MacOSX系统常用多点触摸板操作手势教程...
  15. asterisk meetme 会议实现
  16. 花儿还有重开日,人生没有再少年.
  17. 给你的亲人一个科技感满满的生日祝福吧
  18. Python基础教程目录
  19. 【算法设计与分析】分支限界法解决单源最短路径问题:输入带权图G=(V,E)以及出发顶点s,然后用分支限界法解决问题,要求输出路径和长度以及计算时间;
  20. educoder平台项目——旅游网站之数据分析

热门文章

  1. /proc/cpuinfo参数说明查看CPU参数
  2. Linux内核UDP收包为什么效率低?能做什么优化?
  3. kvm切换显示不同服务器界面,让复杂变简单 体验KVM多电脑切换器
  4. 生活在深圳我们需要的不是叹息与感概
  5. ORAN专题系列-21:主要的玩家(设备商)以及他们各自的态度、擅长领域
  6. 微信小程序如何做营销推广?
  7. Python原生服务端签名生成请求订单信息「orderString」
  8. New Year Snowmen((贪心)map+优先队列)
  9. 【SQL数据库】数据库的创建、查询、插入等操作使用方法(结合黑皮书教材网站(db-book中的例子)在MySQL Workbench和shell中实现查询操作
  10. ServiceMesh实战-服务网格是什么?