前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python实现readline去掉换行

python实现readline去掉换行

作者头像
py3study
发布2020-01-07 11:47:41
2.5K0
发布2020-01-07 11:47:41
举报
文章被收录于专栏:python3python3

刚刚用python的readline(s)读取文件的发现进行后续处理的时候总是会出现格式上等的一些小错误,后来想起来是因为文件换行符等一些符号(\n\r\t)也会被readline(s)读取到,以下是我用到的小方法

举个栗子吧,以下是我的文件内容:

代码语言:javascript
复制
In [1]: cat /tmp/ip.txt
111.231.0.0/16
122.152.0.0/16
140.143.0.0/16
59.110.0.0/16
106.75.0.0/16

将文件读到变量 f 中,然后执行redline发现其实里面还包括了换行符 '\n':

代码语言:javascript
复制
In [2]: f = open("/tmp/ip.txt",'r')
In [3]: f.readline()
Out[3]: '111.231.0.0/16\n'

我们可以通过split方法将需要的内容切割出来得到下面的结果,但是还不是我们真正想要的,此时的结果为一个列表:

代码语言:javascript
复制
In [4]: f.readline().split("\n")
Out[4]: ['122.152.0.0/16', '']

最后我们可以通过索引的方式将前面的内容取出,达到目的,最后将这个内容送到其他的流程进行处理即可。

代码语言:javascript
复制
In [5]: f.readline().split("\n")[0]
Out[5]: '140.143.0.0/16'

可能有的同学会问,那\r\t\n都存在的情况呢? 那我们就直接让他们消失 比如目前读到的行为

代码语言:javascript
复制
 '\t192.168.11.10/32\n'

通过replace方法替换成空:

代码语言:javascript
复制
a = f.readline().replace('\r','').replace('\n','').replace('\t','')

还可以通过re模块的sub方法:Sub(replacement,string[,count =0 ])

代码语言:javascript
复制
In [37]: import re
In [38]: a=re.compile('(\t|\n|\r)')
In [39]: b=a.sub('$','\t111.231\r.0.0/16\n') #后面的内容通过定义的正则,将符合的内容替换成'$'处的内容
In [40]: b
Out[41]: '$111.231$.0.0/16$'

内容比较简单,希望可以帮到需要的同学

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档