python csv.reader没有指定引用符_Python csv reader//如何忽略封闭字符(因为有时它会丢失)...

这可能会起作用:import csv

import io

file = io.StringIO(u'''

"ThinkPad";"2000.00";"EUR"

"MacBookPro";"2200.00;EUR"

'''.strip())

reader = csv.reader((line.replace('"', '') for line in file), delimiter=';', quotechar='"')

for row in reader:

print(row)

问题是如果有任何合法的引用行,例如

^{pr2}$

或者,更糟的是:"MacBookPro:

Description: Awesome Edition";"2200.00";"EUR"

您的输出将生成太少/太多的列。但如果你知道这不是问题,那么它会很好地工作。您可以通过在读取部分之前添加以下内容来预筛选文件,这将导致出现格式错误的行:for line in file:

if line.count(';') != 2:

raise ValueError('No! This file has broken data on line {!r}'.format(line))

file.seek(0)

或者,你也可以在阅读时进行筛选:for row in reader:

if any(';' in _ for _ in row):

print('Error:')

print(row)

最终,最好的选择是修复产生垃圾csv文件的任何内容。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值