转载:https://blog.csdn.net/qq_42769683/article/details/104565285?utm_source=app&app_version=4.10.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

1.目的:将不同文件夹下具有相同文件名称的文件进行合并,并保证文件中第一行标题不重复(按行整合)。

代码:

import pandas as pd
import osdef merge_data(id):base = 'path to Excel file/'  #大文件夹,注意最后的/dir_names = os.listdir(base) # 打开大文件夹后的各个小文件夹名dir_namesdf_all = pd.DataFrame()for dir in dir_names:  #遍历每一个小文件夹file_path = base+dirfile_names = os.listdir(file_path)  #打开小文件夹后每一个excel文件的名称for file in file_names:  #遍历小文件夹里的每一个文件file_name = file_path+'/'+fileif file.split('.')[0] == id:df = pd.read_excel(file_name)# df_all = df_all.append(df)df_all = df_all.append(df,ignore_index=True)#索引重新排序return df_allif __name__ == '__main__':base = 'path to excel file/'dir_names = os.listdir(base)ids = set()  # set()可以看做一个列表,这里面不包含重复的元素,不可以使用索引for dir in dir_names:file_path = base+dirfile_names = os.listdir(file_path)for file_name in file_names:id = file_name.split('.')[0]  #id表示这一个股票的代码ids.add(id)  #把所有id放入ids中,这样不会有重复的id存在for id in ids:df = merge_data(id)base = 'path to save file/'  #存放合并后的文件路径id_path = base + id + '.xlsx'df.to_excel(id_path)

2.更新:将两个不同文件夹下同名文件合并,并且要求合并后的文件包括两个sheet。
代码:

import pandas as pd
import osfrom pandas import ExcelWriter
writer = ExcelWriter("path to save output excel/output.xlsx")base = 'path to excel /'  #大文件夹,注意最后的/
dir_names = os.listdir(base) # 打开大文件夹后的各个小文件夹名dir_names
df_all = pd.DataFrame()for dir in dir_names:  #遍历每一个小文件夹file_path = base+dirfile_names = os.listdir(file_path)  #打开小文件夹后每一个excel文件的名称for file in file_names:  #遍历小文件夹里的每一个文件file_name = file_path+'/'+filedf_excel = pd.read_excel(file_name)(_, f_name) = os.path.split(file_name)(f_short_name, _) = os.path.splitext(f_name)df_excel.to_excel(writer, f_short_name, index=False)writer.save()

3.更新:将两个不同文件夹同名的文件合并,按列合并成一个sheet

import pandas as pdimport numpy as npimport osimport globfrom os.path import join#%%
#合并不同文件夹下相同文件名Excel,按列合并# out file path
outDir = os.path.abspath('save path') #one file
imageDir1 = os.path.abspath('file path1')#define area file variable
image1 = [] #1.txt;2.txt
imgname1 = [] #1;2#get all .txt file
imageList1 = glob.glob(os.path.join(imageDir1, '*.xlsx'))#get filename (1.txt;2.txt)
for item in imageList1:image1.append(os.path.basename(item))#get filename(1;2)
for item in image1:(temp1, temp2) = os.path.splitext(item)imgname1.append(temp1)#second file
imageDir2 = os.path.abspath('file path2')
image2 = []
imgname2 = []
imageList2 = glob.glob(os.path.join(imageDir2, '*.xlsx'))for item in imageList2:image2.append(os.path.basename(item))for item in image2:(temp1, temp2) = os.path.splitext(item)imgname2.append(temp1)#f the first file name and sencond file name are the same, the two groups of data are merged
for item1 in imgname1:for item2 in imgname2:if item1 == item2:dir1 = imageList1[imgname1.index(item1)]dir2 = imageList2[imgname2.index(item2)]data1 = pd.read_excel(dir1)area = data1# print(data)name1 = os.path.basename(dir1)data2 = pd.read_excel(dir2)height = data2[0:132].reset_index(drop=True)# print(data)name2 = os.path.basename(dir2)data = pd.concat([area,height],axis=1,ignore_index=True)pd_data = pd.DataFrame(data)pd_data.to_csv(os.path.join(outDir, name1.split('.')[0]+'.csv'))
print('done!')

参考资料:https://blog.csdn.net/weixin_43668299/article/details/97807698

python 合并不同文件夹下名称相同的文件相关推荐

  1. python 读取文件到字典读取顺序_python顺序的读取文件夹下名称有序的文件方法...

    python顺序的读取文件夹下名称有序的文件方法 如下所示: import os path="/home/test/" #待读取的文件夹 path_list=os.listdir( ...

  2. python 导入csv文件到oracle_python将文件夹下的所有csv文件存入mysql和oracle数据库

    #oracle版 首先新建python脚本(d:/python/orclImport.py) import os #引入os包 if __name__ == '__main__': #遍历文件夹下所有 ...

  3. python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件

    前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...

  4. r读取文件夹下的所有csv文件_[R语言]读取文件夹下所有子文件夹中的excel文件,并根据分类合并。...

    解决的问题:需要读取某个大文件夹下所有子文件夹中的excel文件,并汇总,汇总文件中需要包含的2部分的信息:1.该条数据来源于哪个子文件夹:2.该条数据来源于哪个excel文件.最终,按照子文件夹单独 ...

  5. 将一个文件夹下的所有pdf文件合并为一个文件

    文章目录 1.将一个文件夹下的所有pdf文件合并为一个文件 这里还有一个 2.重新生成PDF文件 如题,每次都要重新写脚本很烦人,放在CSDN当做工具吧! 1.将一个文件夹下的所有pdf文件合并为一个 ...

  6. Python语言学习:创建/删除文件/文件夹、获取当前文件/文件夹路径(系统环境路径/目录)、获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略

    Python语言学习:创建/删除文件/文件夹.获取当前文件/文件夹路径(系统环境路径/目录).获取当前文件夹下的所有子文件路径等代码(os系列用法)实现之详细攻略 目录 系统环境路径的设置 1.sys ...

  7. python找出某个文件夹下某个后缀的文件

    python找出某个文件夹下某个后缀的文件 import osdef find_files_with_suffix(folder_path, suffix):# 使用os模块获取文件夹中所有文件的路径 ...

  8. Python执行某一文件夹下的所有py文件

    记一段代码,是使用python执行某一文件夹下的所有py文件 # -*- coding: utf-8 - import os# 当前脚本所在的文件绝对路径 cur_path = os.path.dir ...

  9. 在Windows系统中,批量复制文件夹下所有或者部分文件的名称

    当在使用Windows系统中,需要批量复制某一个文件夹下所有或者部分文件的名称时,可以使用如下方法: 第一步:打开需要批量复制文件名称的文件夹: 第二步:在该文件夹下新建一个txt文件,然后将.txt ...

  10. java读取文件夹下的所有txt文件,java读取文件夹下文件及txt内容

    public class PositionController { // 读取txt内容 public static String txt2String(File file) { StringBuil ...

最新文章

  1. nginx反向代理原理及配置详解
  2. Step by step to create time dependent view
  3. 第五六七章(PTA复习)
  4. 自学python能学成吗-自学Python能学会吗 零基础怎么学
  5. python实例化次数怎么算_关于python多次实例化
  6. 小京东商城用什么版本的php,小京东2018多用户通用商城网源码商城带手机版ecshop源码程序...
  7. python_PDF合成软件_ZHOU125disorder_
  8. 手机黑域ADB开启教程
  9. Ubuntu18.04安装COMSOL 5.3a
  10. Java实现QQ机器人
  11. freeswitch 自定义application
  12. r语言liftchart_最棒的7种R语言数据可视化
  13. Citrix 服务器虚拟化之十四 介绍桌面虚拟化之XenDesktop 7.0
  14. 如何帮助传统批发零售业转型线上发展
  15. 电脑桌面便签提醒事项到期后怎么清除时间设置?
  16. 《Java语言程序设计》 课程分析与总结(上)---我为什么这样设计考试试卷?
  17. net stop mysql 发生系统错误5
  18. 数组概念、定义、初始化
  19. Git补丁简单用法介绍(打补丁.diff 和 .patch 和 git apply、git am应用)
  20. 卸载WPS后,安装OFFICE2013问题

热门文章

  1. .net session 有效时间_【面试题】|干货!.NET C# 简答题Part 07
  2. 服务器mysql_本地如何操作服务器的mysql,详细教程
  3. springboot指定属性返回_Spring Boot 最最最常用的注解梳理
  4. Javascript特效:不断在页面跑的星星
  5. 如何写一个批量下载PDF文件的程序hp48
  6. (CVPR2019)视频-图像语义分割(21) 联合传播数据增广+标签松弛提升边界精度=语义分割效果提升
  7. 从零开始搭二维激光SLAM --- 基于ceres的后端优化的代码实现
  8. CNN卷积神经网络之卷积运算的初步理解
  9. Cora数据集介绍+python读取
  10. 论文阅读笔记(四)——ESPNetV2:A Light-weight Power Efficient and General Purpose Convolutional Neural Network