逗号分隔符CSV Python的问题

时间:2018-12-10 14:01:50

标签: python

我使用的是CSV文件示例,如下所示:

3256221406917,DESCRIPTION1,"U Bio,  U",food
3256223662106,DESCRIPTION2,"U Bio,  U",food

我想用逗号来解析它:

def import_csv(csvfilepath):
data = []
product_file = open(csvfilepath, "r")
reader = csv.reader(product_file, delimiter=',')
for row in reader:
    if row:  # avoid blank lines
        columns = [row[0], row[1], row[2], row[3], row[4]]
        data.append(columns)

return data

但是在运行时它会返回“列表索引超出范围”的问题。

我相信问题可能出在第三和第四列,因为有双引号和双引号。但我不明白为什么似乎没有使用delimiter = ','

你知道为什么吗?谢谢您的帮助!

编辑:

谢谢大家,我只是不确定为什么在“”之后读取“,”,以及是否可以更改它,但是删除“”似乎更简单!

3 个答案:

答案 0 :(得分:0)

我相信您可以为此使用熊猫:

df = pd.read_csv('your-data.csv')
df_to_list = df.values.tolist()

答案 1 :(得分:0)

我认为您不需要csvreader,并且我想如果您想对所有逗号强制执行拆分,那么我想您可以尝试以下方法:

def import_csv(csvfilepath):
  data = []
  with open(csvfilepath, "r") as product_file:
  for r in productfile:
      row = r.split(",")
      if len(r) == 5: # Vary this to change the sensitivity
          columns = [row[0], row[1], row[2], row[3], row[4]]
          data.append(columns)

  return data

答案 2 :(得分:0)

尝试更换

列= [行[0],行[1],行[2],行[3],行[4]] 与 列= [行[0],行[1],行[2],行[3]]

由于示例中CSV中只有4列。