当前位置: 首页 > news >正文

Python在实际工作中的运用-指定目录内所有Excel文件转CSV

闲来无事浏览到《【办公自动化】使用Python批量处理Excel文件并转为csv文件》这篇博文,关于多层目录Excel转Csv在处理过程中略显繁复,而且灵活度不高,代码如下:

import pandas as pd
import os
from datetime import datetime
# 基础文件夹路径
base_dir = './sample_data'# 循环遍历到每一个excel文件并修改其文件类型为csv
for first_floor in os.listdir(base_dir):  # 遍历第一层second_floor_dir = base_dir+'/'+first_floor  # 获取第二层的文件路径for second_floor in os.listdir(second_floor_dir):  # 遍历第二层third_floor_dir = base_dir+'/'+first_floor+'/'+second_floor  # 获取第三层的文件路径for third_floor in os.listdir(third_floor_dir):  # 遍历第三层fourth_floor_dir = base_dir+'/'+first_floor+'/'+second_floor+'/'+third_floor  # 获取第四层的文件路径for file_dir in os.listdir(fourth_floor_dir):  # 遍历第四层file_name = file_dir.split('.')[0]  # 获取excel文件名称file_suffix = file_dir.split('.')[1]  # 获取excel文件后缀print(fourth_floor_dir)if file_suffix=='xlsx' or file_suffix=='xls': # 判断文件是否是excel文件df = pd.read_excel(fourth_floor_dir+'/'+file_dir)  # 读取excel文件df['Time'] = pd.to_datetime(df['Time'])df['Time'] = df['Time'].apply(lambda x:datetime.strftime(x,'%Y-%m-%d %H:%M:%S'))df.to_csv(fourth_floor_dir+'/'+file_name+'.csv',index=False)  # 将excel文件保存为csv文件os.remove(fourth_floor_dir+'/'+file_dir)  # 删除原来的excel文件

摘自《【办公自动化】使用Python批量处理Excel文件并转为csv文件》第二段“批量处理Excel文件并转为csv文件”

觉得此案例中处理过程比较死板,可以采用更简洁的代码完成此项工作,思路如下:首先可以通过遍历得到指定目录及其子目录下所有的Excel文件列表,然后再逐个将列表内的Excel文件转换为CSV保存到同一目录下即可。

完整代码如下:

import os
from pathlib import Path
import pandas as pd# 遍历目录得到Excel表格列表
def find_table_files(directory, extensions=('.xlsx', '.xls')):table_files = []for root, dirs, files in os.walk(directory):for file in files:if file.endswith(extensions):table_files.append(os.path.join(root, file))return table_files# 逐个将列表里表格转换为CSV文件
directory_path = f'd:\\xls'
files = find_table_files(directory_path)
for file in files:df = pd.read_excel(file)df.to_csv(f'd:\\xls\\ToCsv\\{Path(file).stem}.csv', index=False)
print(f'执行完毕')


http://www.mrgr.cn/news/92692.html

相关文章:

  • 项目开发时,涉及到的css样式
  • React 组件基础介绍
  • 初阶数据结构(C语言实现)——3顺序表和链表(3)
  • 会话与会话管理:Cookie与Session的深度解析
  • Harmony os next~鸿蒙应用开发入门教程
  • 【OMCI实践】ONT上线过程的omci消息(七)
  • YOLO - pose detect 输入输出接口与执行效率测试
  • ⭐算法OJ⭐位操作实战【计数】(C++ 实现)
  • 标签使用笔记
  • 图像仿射变换
  • Git快速入门
  • WorldQuant Brain的专属语言——Fast Expression
  • Java中的ArrayDeque
  • vscode集成DeepSeek
  • C++ ++++++++++
  • 一个原教旨的多路径 TCP
  • [C++] enum 以及 enum class 简单用法
  • Java进阶——数据类型深入解析
  • Java进阶——Stream流以及常用方法详解
  • 【漫话机器学习系列】110.线性可分(Linearly Separable)