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

如何将文本列表写入TXT文件,每行一项且读取时无\n字符

解决列表写入文本文件每行一项且读取无换行符的问题

嘿,我来帮你搞定这个小问题!你遇到的情况太常见了——要么写入时加换行导致读取后带\n,要么不加就挤成一行。这里有几个实用的解决方案:

方法1:写入时保留换行,读取时精准去除

你原来的写入逻辑是没问题的(给每个元素加\n保证每行一项),只需要在读取的时候把末尾的换行符去掉就行。用rstrip('\n')可以精准删除每行末尾的换行,不会误伤内容里的其他空格:

写入代码

items = ['First line', 'Second line', 'third line']
with open(filepath, "x") as f:
    f.writelines(line + "\n" for line in items)

读取代码

with open(filepath, "r") as f:
    # rstrip('\n')只删末尾换行,比strip()更精准
    items_read = [line.rstrip('\n') for line in f]

这样得到的items_read就是['First line', 'Second line', 'third line'],完全符合你的需求。

方法2:用print()函数自动处理换行

Python的print()函数默认会在输出末尾加换行符,还支持直接写入文件,用这个方法写入更省心:

写入代码

items = ['First line', 'Second line', 'third line']
with open(filepath, "x") as f:
    for line in items:
        print(line, file=f)

读取代码(推荐用splitlines())

with open(filepath, "r") as f:
    # splitlines()按换行分割,自动丢弃所有换行符
    items_read = f.read().splitlines()

splitlines()是处理这种场景的利器,代码简洁还不会出错。

方法3:用join拼接后一次性写入

把列表元素用\n连接成一个字符串,再写入文件,也能保证每行一项:

写入代码

items = ['First line', 'Second line', 'third line']
with open(filepath, "x") as f:
    # 最后加\n是让文件末尾多一个空行,可选,按需决定
    f.write('\n'.join(items) + '\n')

读取代码

和方法2一样,用splitlines()或者列表推导式都可以,效果完全一致。

总结

如果追求代码简洁,推荐用方法2的组合:print()写入 + splitlines()读取,既不用手动加换行,读取时也自动处理掉\n,完美匹配你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:41:33