本文共 885 字,大约阅读时间需要 2 分钟。
昨天写一个简单的爬虫,批量读取txt文本的每行url,然后传到requests.get去解析,可是一个神奇的bug出现了,不管我怎么修改总是出现bug,原理上,应该没什么问题,所以一步步的查错,最终终于发现读取txt时出现错误,哎,学艺不精,花了不少时间。因此要纪念下这个小知识点。
文件中每行末尾会有一个隐藏的换行符“\n”,读取的时候“\n” 就会被解析出来换成行,然而我们并没有发现。一个很好的验证方法时用print(),可以直观的发现有空行产生。
txt文本内容
111.txt111111122222333333444444555555666666
直接打印
for line in open("111.txt", encoding='utf-8').readlines(): url = line #url = line.rstrip() # 去掉末尾隐藏的\n,避免出现空行。 print(url)
结果,会发现有空行,让人头疼。
111111122222333333444444555555666666
python自带.strip()和.rstrip()
括号里什么都不写,默认消除空格和换行符
验证:
for line in open("111.txt", encoding='utf-8').readlines(): #url = line url = line.rstrip() # 去掉末尾隐藏的\n,避免出现空行。 print(url)
打印结果:一对比就发现了区别。
111111122222333333444444555555666666
虽说是一个这是个很小知识点,正如,牙疼不是病,疼起来要人命。积累一点,让自己舒服些。
再次:strip与rstrip两个函数是消除指定字符,默认消除空格与换行。
转载地址:http://ettmi.baihongyu.com/