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


被折叠的 条评论
为什么被折叠?



