写入打开的CSV时跳过标题

2024-10-08 18:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在把一堆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()

Tags: csvpathin文件夹标题fordataos
1条回答
网友
1楼 · 发布于 2024-10-08 18:30:59

为了简化操作,我让代码加载运行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()

相关问题 更多 >

    热门问题