2016-10-07 22 views

回答

-1

字符串像這樣刪除的最後一個字符,即 '\ n' 從讀:

b = b[:-1] 
+0

\ r \ n? – Sergey

+0

OP沒有說他有兩個。 – Chris

+0

這將刪除行中的最後一個字符,即使它最後沒有換行符。 I.E最後一行 –

4

這將是

b.rstrip('\n') 

如果你想刪除的每一行線,你可能會考慮

a.read().splitlines() 

這將給你一個行的列表,沒有行結束字符。

2

一種解決方案,可以爲:

with open("file", "r") as fd: 
    lines = fd.read().splitlines() 

你得到的行列表中沒有 「\ r \ n」 或 「\ n」。

或者,使用經典的方式:

with open("file", "r") as fd: 
    for line in fd: 
     line = line.strip() 

您讀取文件,一行一行地用空格和換行刪除。

如果你只是要刪除的換行符:

with open("file", "r") as fd: 
    for line in fd: 
     line = line.replace("\r", "").replace("\n", "") 

的Et就萬事大吉了。

注意: Python 3的行爲有點不同。要模仿此行爲,請使用io.open

請參閱io.open的文檔。

所以,你可以使用:

with io.open("file", "r", newline=None) as fd: 
    for line in fd: 
     line = line.replace("\n", "") 

換行符參數爲None:輸入線可以在 '\ n' 結束 '\ r',或 '\ r \ n' ,並將它們翻譯成'\ n'。

換行控制通用換行符的工作方式(僅適用於文本模式)。它可以是None,'','\ n','\ r'和'\ r \ n'。它的工作原理如下:

在輸入上,如果換行符是None,則啓用通用換行符模式。輸入中的行可以以'\ n','\ r'或'\ r \ n'結尾,在返回給調用者之前,這些行會被轉換爲'\ n'。如果是'',則啓用通用換行符模式,但行結束符會返回給未經翻譯的調用者。如果它具有任何其他合法值,則輸入行僅由給定字符串終止,並且行尾以未翻譯形式返回給調用者。