如何在不使用Pandas的情况下去除CSV文件中的单引号和双引号
解决CSV数据去除单双引号的问题
方法1:连续使用replace()方法
直接对每个字段依次清除单引号和双引号,修改后的代码简洁直观:
import csv with open('output.csv','r') as i: for row in csv.reader(i): # 批量处理整行所有字段,同时去除单双引号 cleaned_row = [col.replace('"', '').replace("'", "") for col in row] # 打印每个处理后的字段 for column in cleaned_row: print(column) # 若需输出整行CSV格式,可替换为: # print(','.join(cleaned_row))
方法2:使用str.translate()提升效率
如果处理的CSV数据量较大,translate()方法性能更优,通过字符转换表批量删除指定符号:
import csv # 创建转换表:指定要删除的单引号和双引号 trans_table = str.maketrans('', '', '\'"') with open('output.csv','r') as i: for row in csv.reader(i): cleaned_row = [col.translate(trans_table) for col in row] for column in cleaned_row: print(column)
特殊场景处理:单引号作为字段包裹符
如果你的CSV中,单引号是用来包裹字段的(类似标准CSV的双引号作用),可以通过csv.reader的参数让解析器自动处理单引号,再清除剩余双引号:
import csv with open('output.csv','r') as i: # 设置quotechar为单引号,让解析器自动识别并去除单引号包裹 reader = csv.reader(i, quotechar="'", doublequote=True) for row in reader: cleaned_row = [col.replace('"', '') for col in row] for column in cleaned_row: print(column)
内容的提问来源于stack exchange,提问作者Yes_par_row
相关产品推荐
相关产品推荐

