2012-08-16 110 views
9

我有一些文本數據打印出實際字符「\ r \ n」(所以總共四個字符)。我想用單個「\ n」字符替換這四個字符,但我似乎無法讓Python爲我做。我目前正在嘗試:用「 n」代替「 r n」

mytext.replace("\r\n", "\n") 

但是,只是打印出「\ n」(兩個字符,而不是一個)。我覺得我可能錯過了一些顯而易見的東西,但任何幫助將不勝感激。

+2

如果它是一個文件,你可以用'open(file_name,'rU')'來讀取它們,如果「\ r \ n」是4個字符,那麼它們全都是''\ n'' – jamylak 2012-08-16 14:35:05

回答

15

我會建議使用splitlines,而不是一個正則表達式或查找/替換

"\n".join(mytext.splitlines()) 
+0

這應該是解決方案 – geotheory 2015-12-19 13:29:10

0

對不起,我誤解你的問題:

在這種情況下,你應該AR前綴的字符串使用原始字符串:

mytext.replace(r"\r\n", r"\n") 
+0

然後刪除2將不會幫助/ – Stals 2012-08-16 14:38:03

13
mytext.replace(r"\r\n", r"\n") 

的 'R' 表示一個原始字符串,它告訴python將文本中的反斜槓解釋爲文字字符而不是轉義字符。

+2

這對我沒有幫助(ubuntu) – geotheory 2015-12-19 13:27:53

3

"\n".join(mytext.splitlines()) 這對我的作品。 mytext.replace(r"\r\n", r"\n"),這不行。

2

這是一個解決方案,如果以上任何一個都不起作用(這是我使用Python3的Anaconda分佈的情況)。

mytext.replace("\\r\\n", "\\n") 

這與\被用作轉義字符有關。我認爲使用原始字符串格式化程序的上述答案可以達到同樣的效果,但無論出於何種原因,這對我來說都不起作用,而且確實如此。

相關問題