Python - 从不同的.csv文件合并数据。合二为一 [英] Python - Combing data from different .csv files. into one

查看:514
本文介绍了Python - 从不同的.csv文件合并数据。合二为一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一些来自python程序员的帮助来解决我在处理数据时遇到的问题: -

I need some help from python programmers to solve the issue I'm facing in processing data:-


  • .csv文件放置在目录结构中,如下所示: -

  • I have .csv files placed in a directory structure like this:-

-MainDirectory

-MainDirectory


  • 子目录1

    • 子目录1A

      • fil.csv


      • 子目录2A

        • file.csv


        • 子目录3A

          • file.csv

          我想运行一个脚本,而不是进入每个目录并访问.csv文件组合所有子目录的数据。

          Instead of going into each directory and accessing the .csv files, I want to run a script that can combine the data of the all the sub directories.

          每个文件的标题类型相同。我需要维护一个大的.csv文件,只有一个头,所有的.csv文件数据可以一个接一个附加。

          Each file has the same type of header. And I need to maintain 1 big .csv file with one header only and all the .csv file data can be appended one after the other.

          我有一个python脚本,可以组合单个文件中的所有文件,但只有当这些文件放在一个文件夹。

          I have the python script that can combine all the files in a single file but only when those files are placed in one folder.

          您能帮助提供一个可以处理上述目录结构的脚本吗?

          Can you help to provide a script that can handle the above directory structure?

          推荐答案

          尝试这个代码,我在我的笔记本电脑上测试它,它工作得很好!

          Try this code, I tested it on my laptop,it works well!

          import sys
          import os
          
          def mergeCSV(srcDir,destCSV):
              with open(destCSV,'w') as destFile:
                  header=''
                  for root,dirs,files in os.walk(srcDir):
                      for f in files:
                          if f.endswith(".csv"):
                              with open(os.path.join(root,f),'r') as csvfile:
                                  if header=='':
                                      header=csvfile.readline()
                                      destFile.write(header)
                                  else:
                                      csvfile.readline()
                                  for line in csvfile:
                                      destFile.write(line)          
          
          if __name__ == '__main__':
              mergeCSV('D:/csv','D:/csv/merged.csv')
          

          这篇关于Python - 从不同的.csv文件合并数据。合二为一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆