使用rowwise标头将已删除数据导出为CSV格式

时间:2013-08-25 14:17:38

标签: python csv python-2.7 scrapy

Scrapy默认将列数据写入CSV文件,即。一个字段/列。如何编写数据行,即。水平地,其中行的第一个单元格将是该字段的名称。

我浏览了scrapy documentation,但我发现了一些可以更改CSV格式数据的格式

更新

我现在的表现如何:

的产品,价格
电视,25000
冰箱,15000

这就是我想要的:

产品,电视,冰箱
价格,25000,15000

为什么我要那样?
我之前继续进行其他人完成的数据提取过程,65%的过程已经完成。所以这是为了保持格式的一致性。

1 个答案:

答案 0 :(得分:1)

如果CSV文件很大并且您想避免将数据加载到Python列表或词典中,则可以执行以下操作:

infile = "/path/to/input_file.csv"
outfile = "/path/to/output_file.csv"
with open(infile, 'r') as source:
    num_fields = len(source.readline().split(','))
    source.seek(0) # Go back to beginning
    with open(outfile, 'w') as dest:
        for n in range(num_fields):
            for input_line in source:
                dest.write(input_line.split(',')[n] + ',')
            source.seek(0)
            dest.write('\b\n') # remove trailing comma

否则你可以加载所有内容:

infile = "/path/to/input_file.csv"
outfile = "/path/to/output_file.csv"
with open(infile, 'r') as source:
    data = [line.strip().split(',') for line in source]
with open(outfile, 'w') as dest:
    for n in range(len(data[0])):
        dest.writeline(','.join(line[n] for line in data))