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

Python strip()处理转义字符时换行符未移除问题排查

问题根因

你的循环逻辑没有修改原列表的元素:

  1. for name in names 遍历过程中,name是临时绑定的遍历变量,每次循环会依次指向列表里的对应字符串
  2. Python中字符串是不可变对象,strip('\n')不会修改原字符串,只会返回处理完成的新字符串
  3. 你写的name = name.strip('\n')只是把临时变量name重新绑定到了处理后的新字符串上,并没有把新值写回names列表的对应位置,因此原列表内容从头到尾没有发生变化,打印时自然还保留着每行末尾的换行符。
正确实现方式

你可以选任意一种符合你使用习惯的写法:

  • 方式1:遍历索引回写原列表
names = []
with open('./[path]/text_doc.txt', mode='r') as file:
    names = file.readlines()

for idx in range(len(names)):
    names[idx] = names[idx].strip('\n')

print(names)
  • 方式2:列表推导式直接生成处理后的列表(更简洁推荐)
    读取文件时直接完成行内容处理,不需要额外遍历修改:
with open('./[path]/text_doc.txt', mode='r') as file:
    names = [line.rstrip('\n') for line in file]

print(names)

提示:如果只需要移除行尾的换行符,优先用rstrip('\n'),避免strip()误删行首尾本来存在的有效空格;如果确实需要清除所有首尾空白字符(空格、制表符、换行等),再使用无参数的strip()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:09:20