Python读取CSV文件时数据自动添加反斜杠的问题如何解决?
核心问题点
- csv.reader默认未配置转义字符:Python内置csv模块默认采用双引号重复的方式转义引号内的双引号,你当前CSV使用反斜杠转义内部双引号,不符合默认规则,模块会将反斜杠识别为普通字符存入结果。
- 列表打印的自动转义:直接打印列表对象时,Python会调用字符串的
__repr__方法做展示,自动为字符串内的双引号添加转义反斜杠,该部分属于展示效果,并非字符串实际存储的内容,可单独打印列表内的字符串元素验证实际内容。
修复方案
给csv.reader显式指定escapechar='\\'参数,声明反斜杠为转义字符即可。如果你的CSV字段分隔符是多个空格而非制表符,额外添加skipinitialspace=True参数忽略分隔符后的连续空格。
修改后的代码示例:
import csv with open('test.csv', encoding='utf-8') as csv_file: # 制表符分隔的场景用这行 csv_reader = csv.reader(csv_file, delimiter='\t', escapechar='\\') # 多空格分隔的场景替换为下面这行 # csv_reader = csv.reader(csv_file, delimiter=' ', escapechar='\\', skipinitialspace=True) for row in csv_reader: print(row)
如果需要输出和你期望的格式完全一致,避免repr的自动转义,可自定义格式化输出逻辑,不要直接打印整个列表。
内容的提问来源于stack exchange,提问作者user779681
相关产品推荐
相关产品推荐

