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

为什么Python的strip()方法无法清除分割后列表项开头的空格?

问题原理说明
  • str.strip()方法的默认行为是仅移除字符串首尾位置的空白字符(包含空格、换行符\n、制表符\t、回车符\r等),不会处理字符串中间的空白内容。
  • 你的CSV文件每行的结构为字段1; 字段2; 字段3; 字段4,分号和后续字段之间的空格属于字符串中间的内容,不在行首或行尾,所以row.strip()执行后只会删除行尾的换行符,这些中间的空格会被完整保留。
  • 用;分割字符串时,分号后的空格就会成为分割后对应元素的开头字符,因此你会看到分割后的元素前面带空格。
更稳妥的解决方案

你目前用row.replace(" ", "")的方案会删除整行所有空格,如果字段内部本身存在需要保留的空格会导致数据异常,更合理的写法是分割后对每个字段单独做strip处理:

with open("db.csv", "r") as file:
    for row in file:
        row = row.strip()
        print("Stripped:", row)
        # 分割后逐个清理字段前后空白
        task = tuple(item.strip() for item in row.split(";"))
        print("Splitted:", task)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:07