栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python实现多个Sheet文件合并

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python实现多个Sheet文件合并

Python实现多个Sheet文件合并

需求:1个文件下面有多个子文件夹,子文件夹下面有很多个Excel文件,每个Excel里面有多个sheet_name,根据sheet_name分别写到对应的csv文件。

代码如下

import os
import pandas as pd

base_dire = "./data/xxx"
result_file = './result/'

#遍历文件夹下所有文件及目录
for path,dir_list,file_list in os.walk(base_dire):
    for file_name in file_list:
        file_path = os.path.join(path,file_name)
        df = pd.ExcelFile(file_path)
        sheet_names = df.sheet_names

        #有的文件中没有'患者信息',所以加了这个条件判断
        if '患者信息' in sheet_names:
            for sheet_name in sheet_names:
                df_row = pd.read_excel(file_path, sheet_name=sheet_name)
                csv_file_path = f'{result_file}{sheet_name}.csv'
                #header=(not os.path.exists(csv_file_path)) 简单来说:就是第一次往文件添加数据,包含标题行,第二次不添加标题行;
                df_row.to_csv(csv_file_path, mode='a', header=(not os.path.exists(csv_file_path)), index=False)

'''
总结:
mode='a' 往文件追加数据;index=False 去掉索引;
header=(not os.path.exists(csv_file_path)) header=False 表示第一行不是标题行,header=True 表示第一行是标题行;
os.path.exists() 返回boole值,文件不存在就返回False,存在返回True; not 是取反的意思,表示第一次往文件添加数据的时候,
文件不存在,返回False,取反就是True,header=True 表示第一行是标题行,第二次在添加数据的时候,文件存在就是True,取反就是False,
header=False 表示第一行不是标题行,第二次就不写入标题行了。
'''

结果

reference
1.python to_csv追加Dataframe 表头重复问题
https://blog.csdn.net/qq_41562377/article/details/108661459?utm_source=app&app_version=4.15.2&utm_source=app

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275067.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号