python逐行讀取txt文件時出現多余空行的問題


這幾天做程序作業的時候需要用python的讀取文件功能,在我用readlines()函數做逐行讀取的時候遇到了一個小問題,在這里和大家分享一下。

txt文件里的內容是這樣的:

 1 1
 2 2
 3 3
 4 4
 5 5

代碼也沒什么問題:

1 with open('001.txt','r') as f:
2     lines = f.readlines()
3     for line in lines:
4         print(line)

但運行出來就。。。:

1 1
2 
3 2
4 
5 3
6 
7 4
8 
9 5

 

每兩行之間都出現了奇怪的空行,這是怎么回事呢?

其實是因為文件中每行末尾會有一個隱藏的換行符“\n”,讀取之后“\n”會被解析出來形成換行,而print()語句本身就自帶換行的效果,兩個換行疊加之后就會出現空行。

 

那么怎樣消除這個bug呢?

其實很簡單,python有兩個自帶的函數:.strip().rstrip()

  • .strip()的意思是消除字符串整體的指定字符
  • .rstrip()的意思是消除字符串末尾的指定字符

括號里什么都不寫,默認消除空格和換行符

 

ok,我們再來試試:

1 with open('001.txt','r') as f:
2     lines = f.readlines()
3     for line in lines:
4         print(line.strip())

運行結果:

1 1
2 2
3 3
4 4
5 5

問題解決!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM