文件夹excel合并 遍历

# -*- coding: utf-8 -*-
#导入需要使用的包
import xlrd  #读取Excel文件的包
import xlsxwriter   #将文件写入Excel的包
import os

#打开一个excel文件
def open_xls(file):
    f = xlrd.open_workbook(file)
    return f

#获取excel中所有的sheet表
def getsheet(f):
    return f.sheets()

#获取sheet表的行数
def get_Allrows(f,sheet):
    table=f.sheets()[sheet]
    return table.nrows

#读取文件内容并返回行内容
def getFile(file,shnum):
    f=open_xls(file)
    table=f.sheets()[shnum]
    num=table.nrows
    for row in range(num):
        rdata=table.row_values(row)
        datavalue.append(rdata)
    return datavalue

#获取sheet表的个数
def getshnum(f):
    x=0
    sh=getsheet(f)
    for sheet in sh:
        x+=1
    return x

def getFileNames(path):
    dirs = os.listdir(path)
    #print(dirs)
    #名称合并
    file_path = []
    for i in dirs:
        if os.path.splitext(i)[1] == '.xlsx':
            file_path.append(i)
    file_path = [path + "//" + i for i in file_path]
    return file_path
#获取所有子文件路径
def files_name(file_dir):
    pathss=[]
    for root, dirs, files in os.walk(file_dir):
        path = [os.path.join(root, name) for name in files]
            #print(path)
        pathss.extend(path)
    return pathss

方法二:使用pandas读取与合并

import pandas as pd
if __name__=='__main__':
    path=r'导学1-7期数据汇总'
    file_path = files_name(path)  
    #定义要合并的excel文件列表
    allxls= file_path #列表中的为要读取文件的路径
    #存储所有读取的结果
    datavalue=[]
    #print (allxls)
    pd_result = pd.DataFrame()
    for fl in allxls:
        f=open_xls(fl)
        data_temp = pd.read_excel(f)
        data_temp['name'] = fl
        pd_result = pd.concat([pd_result,data_temp])
    print("文件合并完成")      

finally:
flare老师的实战课程“Python入门人工智能:系统掌握机器学习+深度学习 提升实战能力”课程已经上线,新课上线希望大家多多支持,和flare老师一起学习AI,掌握AI工具,解决实际问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值