当前位置: 首页 > 面试题库 >

合并多个CSV文件而无需重复标题(使用Python)

司信厚
2023-03-14
问题内容

我是Python的初学者。我有多个CSV文件(超过10个),并且它们的列数均相同。我想将所有这些文件合并到一个CSV文件中,在该文件中不再重复标题。

因此,从本质上讲,我只需要具有所有标题的第一行,然后就需要合并所有CSV文件中的所有行。我该怎么做呢?

到目前为止,这是我尝试过的。

import glob
import csv



with open('output.csv','wb') as fout:
    wout = csv.writer(fout,delimiter=',') 
    interesting_files = glob.glob("*.csv") 
    for filename in interesting_files: 
        print 'Processing',filename 
    # Open and process file
        h = True
        with open(filename,'rb') as fin:
                fin.next()#skip header
        for line in csv.reader(fin,delimiter=','):
                wout.writerow(line)

问题答案:

虽然我认为最好的答案是来自@valentin的答案,但您可以完全不用csv模块就可以做到这一点:

import glob

interesting_files = glob.glob("*.csv")

header_saved = False
with open('output.csv','wb') as fout:
    for filename in interesting_files:
        with open(filename) as fin:
            header = next(fin)
            if not header_saved:
                fout.write(header)
                header_saved = True
            for line in fin:
                fout.write(line)


 类似资料:
  • 问题内容: 我有一些具有相同列标题的CSV文件。例如 文件A 文件B 我想将其合并,以便将数据合并到一个文件中,文件头位于顶部,但其他任何地方都没有文件头。 什么是实现此目标的好方法? 问题答案: 这应该工作。它检查要合并的文件是否具有匹配的头。否则将引发异常。异常处理(关闭流等)已作为练习。

  • 我有一些具有相同列标题的CSV文件。例如 文件A 文件B 我想合并它,以便将数据合并到一个文件中,标题在顶部,但其他地方没有标题。 实现这一目标的好方法是什么?

  • 我一直试图将几个csv文件合并成一个,但它显示出一些错误。我是python新手,非常感谢您的帮助。 以下是我的代码: 错误显示为:

  • 我有一个商业案例,使用Spring batch将多个csv文件(每个文件大约1000个,包含1000条记录)合并成单个csv。 请帮助我提供方法和性能方面的指导和解决方案。 到目前为止,我已经尝试了两种方法, 方法1。 Tasklet chunk与multiResourceItemReader一起从目录中读取文件,FlatFileItemWriter作为项目编写器。 这里的问题是,它的处理速度非常

  • 我正在寻找一个批处理文件合并所有CSV文件在一个特定的文件夹与行"LF"结束。 下面的脚本创建了一个带有“CRLF”EOL的输出文件,但是我的自动数据加载程序只接受“LF”EOL。 此外,我想在输出文件中有一个头。 帮助将不胜感激,因为我已经浪费了足够的时间寻找解决方案。 这就是我在下面尝试的。

  • 我有数百万个不同标题的csv文件,我想把它们合并到一个大数据框中。 我的问题是我尝试过的解决方案有效,但太慢了!顺便说一句,我可以访问Sparklyr在我的实验室中处理多节点集群,这个大数据工具会有帮助吗? 文件如下所示: 文件1 校长1,校长3,校长5 a、 b,c 文件2 校长4,校长2 e、 f 文件3 校长2,校长6 a, c 我想把它们合并成: 校长1,校长2,校长3,校长4,校长5,校