You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:修改Python代码实现多XLSX文件批量转CSV格式

批量XLSX转CSV的代码修改方案

原代码的问题在于,当multiple_files=True时,sg.popup_get_file返回的是多个文件路径组成的列表,但你直接把整个列表传给了pd.read_excel,导致报错。下面是修改后的可批量处理的代码:

import pandas as pd
import PySimpleGUI as sg

# 获取多个Excel文件路径
path_files = sg.popup_get_file('选择文件',
                               title='选择文件',
                               file_types=(('Excel文件', '*.xlsx'),),
                               multiple_files=True)

# 检查是否选中了文件
if not path_files:
    sg.popup('未选择任何文件', title='提示')
else:
    # 遍历每个选中的文件路径
    for path_file in path_files:
        # 读取Excel文件
        df = pd.read_excel(path_file, dtype='str', engine='openpyxl')
        
        # 表头转大写
        df.columns = [col.upper() for col in df.columns]
        
        # 替换所有列中的引号
        for col in df.columns:
            df[col] = df[col].str.replace('"', '')
        
        # 生成CSV文件名(替换.xlsx后缀为.csv)
        csv_path = path_file[:-5] + '.csv'
        # 保存为CSV
        df.to_csv(csv_path, index=False, encoding='utf-8', sep=';', lineterminator='\r\n')
    
    sg.popup('所有文件转换完成!', title='完成')

关键修改说明

  • 循环处理文件:新增for path_file in path_files循环,逐个处理每个选中的Excel文件
  • 空选择判断:增加用户未选文件时的提示,避免后续代码报错
  • 简化表头处理:把原有的表头循环改成列表推导式,更简洁高效
  • 引号替换优化:直接用'"'代替'"',可读性更强(两者语义等价)

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:20:53