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

Python使用readlines()读取文件带\n的原因及解决方法

Python readlines()读取文件带换行符的原因及解决方法

原因

readlines() 方法的设计逻辑是保留每行末尾的换行符(\n)——它会完整读取文件中每一行的内容,包括用于分隔行的换行符,所以返回的列表元素会带有 \n。你看到的教程结果没有换行符,大概率是教程里省略了后续的换行符处理步骤,或者用了其他自动去除换行的读取方式。

解决方法

以下是几种常用的处理方式,最终都能得到你期望的整数列表:

方法1:遍历readlines()结果,去除换行并转整数

对每个读取到的行字符串,用 strip()(或 rstrip('\n'))去掉换行符,再转换为整数:

with open('numbers.txt', 'r') as f:
    raw_lines = f.readlines()
clean_numbers = [int(line.strip()) for line in raw_lines]
# 输出: [1, 2, 3]
  • 用 strip() 会同时去掉字符串首尾的所有空白字符(包括空格、制表符等);如果只想精准去掉换行符,改用 line.rstrip('\n') 更稳妥。

方法2:用splitlines()替代readlines()

read().splitlines() 会直接返回不带换行符的字符串列表,再转整数即可:

with open('numbers.txt', 'r') as f:
    lines = f.read().splitlines()
clean_numbers = [int(line) for line in lines]
# 输出: [1, 2, 3]

方法3:直接迭代文件对象

文件对象本身是可迭代的,每次迭代返回一行内容,同样可以处理:

clean_numbers = []
with open('numbers.txt', 'r') as f:
    for line in f:
        clean_numbers.append(int(line.strip()))
# 输出: [1, 2, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:04:58