這幾天做程序作業的時候需要用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
問題解決!