python为什么要去换行符_python实现readline去掉换行符\n

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

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

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':

In [2]: f = open("/tmp/ip.txt",'r')

In [3]: f.readline()

Out[3]: '111.231.0.0/16\n'

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

In [4]: f.readline().split("\n")

Out[4]: ['122.152.0.0/16', '']

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

In [5]: f.readline().split("\n")[0]

Out[5]: '140.143.0.0/16'

可能有的同学会问,那\r\t\n都存在的情况呢?

那我们就直接让他们消失

比如目前读到的行为

'\t192.168.11.10/32\n'

通过replace方法替换成空:

a = f.readline().replace('\r','').replace('\n','').replace('\t','')

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

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$'

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值