Replace()方法在函数内不起作用

时间:2019-03-09 01:20:20

标签: python python-3.x

我正在制作一个函数,该函数接受纯文本文件,然后返回该文件中的单词列表。显然,我想摆脱任何换行符'\ 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()'方法不起作用?

2 个答案:

答案 0 :(得分:1)

可能是python或其他一些编程语言将换行符读为'\ n'转义符的情况。因此,当python读取文件时,“ \ n”表示换行,而“ \\ n”表示您在文本文件中写入的实际“ \ n”字符。

所以您需要像这样替换 a = message.replace('\\n', '')

答案 1 :(得分:1)

当前文本替换的问题是Foo被认为是转义字符-文字字符\会被解释为换行符。解决此问题的方法是通过\n来转义\字符本身。更新后的替换语句将显示为:

\\

代替:

a = message.replace('\\n', '')