同一文件夹,合并文件名开始部分相同的excel(xlsx\csv)
今天使用过程中发现了问题,迭代了一下。
特别注意列表删除时,元素对应索引的变化。
可以直接使用!
# -*- conding:utf-8 -*-
# @Time:4/3/2023 下午9:42
# @Author: 夏舒娴
# @File:文件合并.py
# @Software:PyCharm
import os
import pandas as pd
#按文件名合并同一文件夹下的excel
#同一文件夹,合并文件名开始部分相同的excel(xlsx\csv)
def Con_file(file,savepath,i):
'''
合并xlsx
:param file: 原数据存储文件夹路径
:param savepath: 结果保存路径
:param i: 文件名前几位相同
:return: 合并后excel
'''
file_list = os.listdir(file)
file_list0 = file_list[:]
j=0
for filename1 in file_list0:
j += 1
print(f"正在合并第{j}个文件")
filepath1 = file + filename1
df1 = pd.read_excel(filepath1)#如果是csv文件用:pd.read_csv()
for filename2 in file_list:
if filename1!=filename2 and filename1[0:int(i)]==filename2[0:int(i)]:
filepath2 = file + filename2
df2 = pd.read_excel(filepath2)
df1=pd.concat([df1,df2])
file_list0.remove(filename2)
df1.to_excel(savepath+filename1[0:int(i)]+'.xlsx')
def main():
file=input("请输入文件夹路径(eg:D:\python学习\测试数据/):")
savepath=input("请输入存储路径(eg:D:\python学习\结果/):")
i=input("请输入文件名前几位相同(整数):")
confile=Con_file(file, savepath, i)
a=main()