1. 程式人生 > >讀取txt檔案出現出現多餘空行問題

讀取txt檔案出現出現多餘空行問題

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兩個函式是消除指定字元,預設消除空格與換行。

3 參考

               

部落格園