如何更改默认的CSV分隔符?

问题描述 投票:0回答:2

我试图读取一个单独的csv文件;。

码:

import csv
with open('Ingresos_e_eCPM_por_fecha_y_cliente.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, quotechar='|')
    for row in spamreader:
        print ', '.join(row)

我有这个csv数据:

21/12/2017;En;229.620;18.508;8,06%;14,56;0,79
22/12/2017;En;204.042;48.526;23,78%;43,98;0,91
23/12/2017;En;102.613;20.223;19,71%;17,86;0,88
24/12/2017;En;90.962;19.186;21,09%;14,26;0,74
25/12/2017;En;60.189;12.654;21,02%;11,58;0,92

问题是当我尝试用我的python代码阅读时,它向我显示了这些:

21/12/2017;En;229.620;18.508;8, 06%;14, 56;0, 79
22/12/2017;En;204.042;48.526;23, 78%;43, 98;0, 91
23/12/2017;En;102.613;20.223;19, 71%;17, 86;0, 88
24/12/2017;En;90.962;19.186;21, 09%;14, 26;0, 74
25/12/2017;En;60.189;12.654;21, 02%;11, 58;0, 92

我需要的数据与csv相同!

python python-2.7 csv
2个回答
2
投票

如果你阅读文档,你会看到你可以指定一个Dialect.delimiter告诉csv module用什么字符来分隔字段。

csv.reader(csvfile, dialect='excel', **fmtparams)

可以给出其他可选的fmtparams关键字参数来覆盖当前方言中的各个格式参数。

在你的情况下:

spamreader = csv.reader(csvfile, delimiter=';', quotechar='|')

2
投票

您应该将逗号分隔值(csv)文件分隔符调整为分号qazxsw poi:

delimiter=';'

另一种方法是使用提供的方言之一(分号为csv的常见罪魁祸首是excel):

import csv 
with open('Ingresos_e_eCPM_por_fecha_y_cliente.csv', 'rb') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=';', quotechar='|')
    for row in spamreader:
        print ', '.join(row)
© www.soinside.com 2019 - 2024. All rights reserved.