# -*- 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工具,解决实际问题。