讀取txt檔案出現出現多餘空行問題
阿新 • • 發佈:2019-02-18
0 前言
昨天寫一個簡單的爬蟲,批量讀取txt文字的每行url,然後傳到requests.get去解析,可是一個神奇的bug出現了,不管我怎麼修改總是出現bug,原理上,應該沒什麼問題,所以一步步的查錯,最終終於發現讀取txt時出現錯誤,哎,學藝不精,花了不少時間。因此要紀念下這個小知識點。
1 正文
1.1 原理
檔案中每行末尾會有一個隱藏的換行符“\n”,讀取的時候“\n” 就會被解析出來換成行,然而我們並沒有發現。一個很好的驗證方法時用print(),可以直觀的發現有空行產生。
1.2 小實驗驗證一波
txt文字內容
111.txt 111111122222 333333444444 555555666666
直接列印
for line in open("111.txt", encoding='utf-8').readlines():
url = line
#url = line.rstrip() # 去掉末尾隱藏的\n,避免出現空行。
print(url)
結果,會發現有空行,讓人頭疼。
111111122222
333333444444
555555666666
1.3 解決方法
python自帶.strip()和.rstrip()
- .strip()的意思是消除字串整體的指定字元
- .rstrip()的意思是消除字串末尾的指定字元
括號裡什麼都不寫,預設消除空格和換行符
驗證:
for line in open("111.txt", encoding='utf-8').readlines():
#url = line
url = line.rstrip() # 去掉末尾隱藏的\n,避免出現空行。
print(url)
列印結果:一對比就發現了區別。
111111122222
333333444444
555555666666
2 總結
雖說是一個這是個很小知識點,正如,牙疼不是病,疼起來要人命。積累一點,讓自己舒服些。
再次:strip與rstrip兩個函式是消除指定字元,預設消除空格與換行。