写入打开的CSV时跳过标题

时间:2017-03-07 21:53:55

标签: python python-3.x csv append

我正在将一大堆CSV编译成一个。第一个CSV包含标题,我以写模式(maincsv)打开。然后,我将列出所有其他生活在不同文件夹中并尝试将它们附加到主文件夹的列表。

它有效,但它只是在标题上写。我只是想从第2行开始追加。我确信这很简单,但我尝试的所有next()等等都会抛出错误。如果有帮助,标题和数据会对齐。

import os, csv

maincsv = open(r"C:\Data\OSdata\codepo_gb\CodepointUK.csv", 'w', newline='')
maincsvwriter = csv.writer(maincsv)
curdir = os.chdir(r"C:\Data\OSdata\codepo_gb\Data\CSV")
csvlist = os.listdir()
    csvfiles = []
    for file in csvlist:
        path = os.path.abspath(file)
        csvfiles.append(path)

for incsv in csvfiles:
    opencsv = open(incsv)
    csvreader = csv.reader(opencsv)
    for row in csvreader:
        maincsvwriter.writerow(row)

maincsv.close()

1 个答案:

答案 0 :(得分:1)

为了简化操作,我将代码加载运行python代码的目录中的所有文件。这将获得第一个.csv文件的第一行并将其用作标题。

import os
count=0
collection=open('collection.csv', 'a')
files=[f for f in os.listdir('.') if os.path.isfile(f)]
for f in files:
    if ('.csv' in f):
        solecsv=open(f,'r')
        if count==0:
            # assuming header is 1 line
            header=solecsv.readline()
            collection.write(header)
        for x in solecsv:
            if not (header in x):
                collection.write(x)
collection.close()