Before:
·
|__file
|__file1
|__1.xls
|__2.xls
|__file2
|__3.xls
|__4.xls
|__5.xls
|__6.xls
|__7.xls
After:
·
|__file
|__file1
|__1.xls
|__2.xls
|__file1.xls (*)
|__file2
|__3.xls
|__4.xls
|__5.xls
|__file2.xls (*)
|__6.xls
|__7.xls
|__file.xls (*)
1. xlrd (read excel)
2. xlwt (write excel) (optional)
3. pandas
4. numpy
# -*- coding: utf-8 -*-
import os
import pandas as pd
import numpy as np
dd = os.getcwd()
# 获取python文件所在的当前目录,可以用 os.path.join() 追加子目录
lists = os.listdir(dd) # 获取 dd 目录下的所有文件和文件夹
for ll in lists:
dir=os.path.join(dd, ll) # 通过拼接获得文件或文件夹的绝对路径
os.chdir(dir) # 转移工作路径
print(dir) # 输出检查是否是进入了新的文件夹
#新建列表,存放文件名(可以忽略,但是为了做的过程能心里有数,先放上)
filename_excel = []
#新建 dataframe 类型列表,存放每个文件数据框(每一个excel读取后存放在数据框)
frames = []
for root, dirs, files in os.walk(dir):
# os.walk(dir) 可以递归遍历当前文件夹下的所有文件
for file in files:
# print(os.path.join(root,file))
filename_excel.append(os.path.join(root,file))
# 注意用 os.path.join 而不是自己写路径,win linux macos 下的路径表示不同
df = pd.read_excel(os.path.join(root,file)) #excel转换成DataFrame
frames.append(df)
#打印文件名
print(filename_excel)
#合并所有数据
result = pd.concat(frames)
#查看合并后的数据
result.head()
result.shape
result.to_csv(dd+'\\'+ll+'.csv' ,sep=',',index = False)
#保存合并的数据到电脑D盘的merge文件夹中,并把合并后的文件命名为a12.csv