目录
目标问题
本文中主要是将相同后缀的多个文件合并到excel中,通过此思路可以解决:
- 完成不同类型的文件向excel的操作。
- 完成不同sheet的excel操作。
原始数据
1. 文件夹内容
2. 单个文件内容,以14.G1125为例
最终输出
1 最终效果
2 单个文件内容
说明:相同站点放到同一个excel中,不同日期放到不同的sheet中。
代码内容
import os
import xlwt
'''
Author:zflyee
思路:
1. 先对所有文件名进行收集并切分后去重
2. 再找到所有后缀文件名的路径
3. 做循环读入数据,同一个excel的不同sheet里面
'''
# 获取所有的文件后缀名
def file_name(file_dir):
name_suffix=[] # 创建文件后缀列表
file_path=[] # 创建文件路径空列表
for root, dirs, files in os.walk(file_dir): # 遍历文件,返回一个三元组
# 获取文件所有路径
for file in files:
file_path.append(os.path.join(root,file)) # 拼接文件路径
L=file.split('.')[1] # 得到文件的后缀
if L not in name_suffix: # 去重
name_suffix.append(L)
return file_path,name_suffix # 返回文件名路径与后缀路径
def main():
## 汇总同后缀名文件
dir_path='W:\Solar Radiation\Data\Data_original\Temp_data\秒级数据' # 设置文件路径
File_Path,Name_Suffix=file_name(dir_path) #得到所有文件名的路径 和 后缀名的列表
# print(Name_Suffix)
## 进行数据处理
for upfile in Name_Suffix: # 遍历所有后缀
res_path=r'W:\Solar Radiation\Data\Data_original\Temp_data\res/'+upfile+'.xls' #以后缀为文件名,然后设置文件输出路径
DataWriter=xlwt.Workbook(style_compression=0) # 创建一个excel
for file in File_Path: # 遍历所有文件路径
data_name = os.path.basename(file).split(sep='.')[0] # 得到每个数据文件的名称
data_suffix = os.path.basename(file).split(sep='.')[1] # 得到每个数据文件的后缀
# 核心部分
if data_suffix==upfile: # 对比数据文件后缀与列标中的后缀
sheet = DataWriter.add_sheet(data_name, cell_overwrite_ok=True) # 在打开的excel中增加数据文件的sheet
f=open(file, encoding='utf-8') # 读取单个文件,注意转码
lines=f.readlines() # 读取内容,常规操作