You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

读取文件内容存入列表时为何包含\n?如何修复该问题?

问题原因

当你逐行读取文件时,Python会保留每行末尾的换行符\n——这是文件里用来标记换行的特殊字符,所以除了最后一行(如果文件末尾没换行的话),其他行都会带着这个\n。另外你代码里的line.strip只是调用了方法,但没有把处理后的结果赋值给line,等于白调用,原字符串根本没变化,自然还是带着\n存进列表了。

解决方法

这里给你几种实用的处理方式:

方式1:正确使用strip()处理每行

把line.strip改成line = line.strip(),这个方法会去掉字符串两端的所有空白字符(包括换行符、空格、制表符等),处理后再存入列表:

def readfile(path):
    file = open(path, 'r')
    scorelist = []
    for line in file:
        line = line.strip()  # 关键:把处理后的结果赋值给line
        scorelist.append(line)
    file.close()  # 别忘了关闭文件,用with语句会更安全
    return scorelist

l = readfile('highscores.txt')
print(l)  # 输出:['0', '0', '0', '0', '0']

方式2:只删除换行符(保留其他空白)

如果你只想去掉末尾的\n,不想改动字符串里的其他空白字符,可以用rstrip('\n'):

line = line.rstrip('\n')

方式3:更简洁的读取方式

用splitlines()方法直接读取并分割内容,它会自动去掉每行的换行符,还能简化代码逻辑:

def readfile(path):
    with open(path, 'r') as file:  # with语句会自动帮你关闭文件,避免资源泄漏
        scorelist = file.read().splitlines()
    return scorelist

l = readfile('highscores.txt')
print(l)

内容的提问来源于stack exchange,提问作者amahd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:52:05