Python如何实现接收文件路径的CSV转EXCEL可调用封装函数
CSV转Excel可复用封装函数实现
首先需要安装依赖库,执行以下命令完成安装:pip install pandas openpyxl
封装完成的函数代码
import pandas as pd import os def csv_to_excel(csv_path: str, excel_path: str = None) -> None: """ CSV文件转Excel文件 :param csv_path: 待转换的CSV文件绝对路径/相对路径 :param excel_path: 输出的Excel文件路径,不传则默认与CSV同目录,后缀改为xlsx """ # 未指定输出路径时自动生成默认输出路径 if not excel_path: excel_path = os.path.splitext(csv_path)[0] + ".xlsx" try: # 读取CSV文件,可根据实际编码调整encoding参数 df = pd.read_csv(csv_path, encoding='utf-8') # 写入Excel文件,默认不保留索引列 df.to_excel(excel_path, index=False, engine='openpyxl') print(f"转换完成,输出文件路径:{excel_path}") except FileNotFoundError: print(f"错误:未找到目标CSV文件 {csv_path}") except PermissionError: print(f"错误:无文件读写权限,请检查路径是否被占用或权限配置") except Exception as e: print(f"转换过程出错:{str(e)}")
使用示例
# 示例1:使用默认输出路径 csv_to_excel("./data/销售数据.csv") # 示例2:自定义输出Excel路径 csv_to_excel("./data/销售数据.csv", "./output/2024年销售数据汇总.xlsx")
注意事项
- 若CSV为GBK/GB2312编码,可修改
pd.read_csv的encoding参数为gbk避免乱码 - 若需要保留CSV的索引列,可将
to_excel的index参数改为True - 若需要批量转换目录下的所有CSV文件,可在此函数基础上扩展目录遍历逻辑,批量完成转换
内容的提问来源于stack exchange,提问作者Χρήστος Γουμενίδης
相关产品推荐
相关产品推荐

