我想解决这个问题。 我读从以下几列CSV fiile数据:从csv文件读取Python
id, name, price
所以我用下面的代码读取CSV:
import sys
import csv as input
def readFile(path):
try:
finput = input.reader(open(path,'rb'),delimiter=',',quotechar='|')
except IOError as (errno,strerror):
print "I/O error({0}): {1}".format(errno,strerror)
except:
print "Unexpected Error: ",sys.exc_info()[0]
raise
# covert format into list
fmod = list(finput)
return fmod
但问题是name字段可以像
名,item_det 现在“”为我创建一个麻烦.. ,而不是读的名称字段作为一个单一的实体有在描述一个逗号.. 它是分裂特定领域。 我该如何解决这个问题。 感谢
一次读取一行文件(无分隔符),并查看具有更高级功能的Python正则表达式函数之一,将字符串分割为字段 –
通常情况下,您的CSV文件会在其中包含引号,这样一行应该是'| name,item_det |,other_field,another_field'(因为你设置了'quotechar ='|'')。 CSV模块可以处理这个问题。如果没有,您可能会想要像@MartinBeckett所说的那样手动解析它,或者检查列表的长度并在必要时手动合并这两个字段。 – Dougal
你有没有对csv输入文件创建的控制,或者你被迫处理破碎的csv文件?通常人们使用'quotechar ='“'' –