猿问

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

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


紫衣仙女
浏览 480回答 2
2回答

HUX布斯

这可能是 python 或其他一些编程语言将新行读取为 '\n' 转义字符的情况。因此,当 python 读取您的文件时,'\n' 表示换行,'\\n' 表示您在文本文件中写入的实际 '\n' 字符。所以你需要更换像 a = message.replace('\\n', '')

开心每一天1111

您当前文本替换的问题在于它\被视为转义字符 - 文字字符\n被解释为换行符。解决这个问题的方法是转义\字符本身,通过\\. 您更新后的替换语句将变为:a = message.replace('\\n', '')代替:a = message.replace('\n', '')
随时随地看视频慕课网APP

相关分类

Python
我要回答