[英]Replace '\n' in a string in Python 2.7
這是我的文件.txt:
Egg and Bacon;
Egg, sausage and Bacon
Egg and Spam;
Spam Egg Sausage and Spam;
Egg, Bacon and Spam;
我想將 newLine '\\n' 轉換為 ' $ '。 我剛用過:
f = open(fileName)
text = f.read()
text = text.replace('\n',' $ ')
print(text)
這是我的輸出:
$ Spam Egg Sausage and Spam;
我的輸出必須是這樣的:
Egg and Bacon; $ Egg, sausage and Bacon $ Egg ...
我究竟做錯了什么? 我正在使用#-*- encoding: utf-8 -*-
謝謝你。
您的換行符可能表示為\\r\\n
。 為了替換它們,您應該執行以下操作:
text.replace('\r\n', ' $ ')
對於適用於類 UNIX 系統(使用\\n
)和 Windows(使用\\r\\n
)的便攜式解決方案,您可以使用正則表達式替換文本:
>>> import re
>>> re.sub('\r?\n', ' $ ', 'a\r\nb\r\nc')
'a $ b $ c'
>>> re.sub('\r?\n', ' $ ', 'a\nb\nc')
'a $ b $ c'
您可以使用分割線。
lines = """Egg and Bacon;
Egg, sausage and Bacon
Egg and Spam;
Spam Egg Sausage and Spam;
Egg, Bacon and Spam;"""
print(" $ ".join(lines.splitlines()))
Egg and Bacon; $ Egg, sausage and Bacon $ Egg and Spam; $ Spam Egg Sausage and Spam; $ Egg, Bacon and Spam;
或者簡單地使用 rstrip 並加入文件對象而不將所有內容讀入內存:
with open("in.txt") as f:
print(" $ ".join(line.rstrip() for line in f))
Egg and Bacon; $ Egg, sausage and Bacon $ Egg and Spam; $ Spam Egg Sausage and Spam; $ Egg, Bacon and Spam;
這是比將所有文件讀入內存並使用正則表達式更有效的解決方案。 您還應該始終使用with
打開您的文件,因為它會自動關閉它們。
rstrip 將刪除\\n
\\r\\n
等。
In [41]: s = "foo\r\n"
In [42]: s.rstrip()
Out[42]: 'foo'
In [43]: s = "foo\n"
In [44]: s.rstrip()
Out[44]: 'foo'
text = text.replace('\\n', '')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.