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

如何使用Python去除CSV文件中的多余空格

使用Python清理CSV文件空格并转换文本大小写

嘿,这需求挺常见的,我给你两种实用的Python实现方案,按需选就行:

方案一:用内置csv模块(推荐,适配复杂CSV场景)

如果你的CSV可能存在带引号的字段或者特殊格式,用这个方法最稳妥,不会踩坑:

import csv

# 打开源文件和目标文件
with open('input.csv', 'r', newline='') as infile, open('output.csv', 'w', newline='') as outfile:
    # 按字典形式读取每一行,方便按字段名操作
    reader = csv.DictReader(infile)
    # 指定输出的字段顺序,和原文件保持一致
    fieldnames = ['id', 'age', 'type', 'destination']
    writer = csv.DictWriter(outfile, fieldnames=fieldnames)
    
    # 逐行处理数据
    for row in reader:
        # 清理每个字段的前后空格,同时把destination转小写
        cleaned_row = {
            'id': row['id'].strip(),
            'age': row['age'].strip(),
            'type': row['type'].strip(),
            'destination': row['destination'].strip().lower()
        }
        writer.writerow(cleaned_row)

为啥推荐这个?

  • csv.DictReader会自动处理CSV的各种规范格式,比如字段里带逗号的情况
  • strip()是Python字符串自带的方法,能精准去除字符串前后的所有空白(包括空格、制表符)
  • 按字段名处理,就算以后CSV列顺序变了,代码也不用大改

方案二:逐行分割处理(适合简单CSV)

如果你的CSV格式特别简单,没有特殊字符或引号,直接逐行处理更轻便:

with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
    # 先处理表头,清理空格后写入
    header = infile.readline().strip()
    outfile.write(header + '\n')
    
    # 处理每一行数据
    for line in infile:
        # 按逗号分割每个字段,同时去除每个字段的前后空格
        parts = [part.strip() for part in line.strip().split(',')]
        # 把第四个字段(destination)转成小写
        parts[3] = parts[3].lower()
        # 重新用逗号拼接成一行,写入文件
        outfile.write(','.join(parts) + '\n')

注意事项

这个方法的局限性是:如果字段内容本身包含逗号(比如"Los Angeles, CA"),分割的时候会出错,所以这种情况一定要用第一种方案。


最终效果

不管用哪种方法,处理后都会得到你想要的结果:

1,10,20,paris
2,20,50,canada
3,10,23,london

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 01:59:10