python print无法打印'\r'的问题

 

最近在学习python的爬虫,今天爬取内容的时候发现了一个bug,让我迷惑了好一会,后面终于发现了问题所在。

在python中,当遇到'\r'回车符时,print的光标要重新置为这一行的开头而且不会换行,然后就会导致前面的内容被覆盖掉,导致打印的内容出现缺失。

解决办法:

1.可以用字符串的替换把'\r'替换为空串""或者空格" "这样就可以正常打印了。

  替换方法:

import re
#三个参数分别是要替换的正则表达式,要替换成的字符串,要替换的目标,下面的意思就是将temp这个字符串的回车符'\r'全部替换为""空串
print re.sub(r'\r',"" , temp)

2.可以在后面添加'\n'换行符,这样就会换行打印了,不会覆盖掉之前的内容。

import re
#三个参数分别是要替换的正则表达式,要替换成的字符串,要替换的目标,下面的意思就是将temp这个字符串的回车符'\r'全部替换为'\r\n'回车换行符
print re.sub(r'\r','\r\n' , temp)

注意:

这里的回车符只影响打印,要是你直接写入文件是不会出现问题的,另外要注意因为参数要用到和返回值都是字符串,可以先在之前把其他的处理完了再替换打印,不然可能格式变化会影响之后的处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值