我正在制作一个函数,该函数接受纯文本文件,然后返回该文件中的单词列表。显然,我想摆脱任何换行符'\ n',但是,当使用'.replace()'时,什么也没发生。
功能:
textfile = 'name.txt'
def read_words(filename):
f = open(filename,'r')
message = f.read()
a = message.replace('\n', '')
wordlist = a.split(' ')
print(wordlist)
read_words(textfile)
样本txt:
This\n\nis\n\n\na\n\n\nmy\n\nwfile with spaces and blanks
我的输出:
['This\\n\\nis\\n\\n\\na\\n\\n\\nmy\\n\\nwfile', 'with', 'spaces', 'and', 'blanks']
为什么'.replace()'方法不起作用?
答案 0 :(得分:1)
可能是python或其他一些编程语言将换行符读为'\ n'转义符的情况。因此,当python读取文件时,“ \ n”表示换行,而“ \\ n”表示您在文本文件中写入的实际“ \ n”字符。
所以您需要像这样替换
a = message.replace('\\n', '')
答案 1 :(得分:1)
当前文本替换的问题是Foo
被认为是转义字符-文字字符\
会被解释为换行符。解决此问题的方法是通过\n
来转义\
字符本身。更新后的替换语句将显示为:
\\
代替:
a = message.replace('\\n', '')