如何使用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
相关产品推荐
相关产品推荐

