2013-04-22 168 views
1

字符串中刪除新行(或回車)我有以下行:從蟒蛇

line = "This is \nmy example" 

,我使用下面的代碼:

line = line.replace("\n", " ") 

,但它不工作

+6

它不工作? – eumiro 2013-04-22 14:29:51

+8

'\ n'不是回車符,它是換行符。回車是'\ r'。 – Cairnarvon 2013-04-22 14:30:47

+1

定義「它不起作用」。它不符合你的期望?(一些預期的和當前的輸出?)它會給你一個錯誤嗎?(完整的追溯?)你的電腦是否會崩潰? – Bakuriu 2013-04-22 14:32:24

回答

6

假設你在做print(line),試試這個:

import sys 
sys.stdout.write(line) 

print()(或python2.x中的print "...")將附加一個換行符。 sys.stdout.write()會寫出你給它的東西。

或者你可以這樣做:

from __future__ import print_function 
print('this is my line', end='') 

或者乾脆(在python3至少):

print(line.strip('\n'), end='') 

如前所述,如果從字符串中刪除'\n',你仍然可以得到一個rowbreak(新線)我假設這是因爲你試圖打印出來在控制檯..其中,將追加一個斷點(新線)。如果情況並非如此,那就更新你的問題。

這會呼應你的字符串到控制檯而不\ n \ r或小道'

import sys 
sys.stdout.write(line.rstrip('\n\r ')) # Will replace all trailing \n, \r and ' ' 
sys.stdout.write(line.strip('\n\r')) # Will replace >>all<< \n, \r and 
3
line = line.replace("\n", " ") 

取代\n用空間。如果你想刪除它,你有一個空字符串來代替它:

line = line.replace("\n", "") 
23

嘗試這樣,

>>> ''.join(line.splitlines()) 
'This is my example' 
+1

這將導致python迭代兩個循環? (這是一個簡潔的解決方案友好的問題) – Torxed 2013-04-22 14:40:27