|
发表于 2023-7-20 18:38:35
|
显示全部楼层
出现该错误是因为 pd.read_excel() 函数无法确定所读取的文件格式,需要手动指定引擎(engine)。在你的代码中,可以添加一个 engine 参数来解决这个问题。
修改后的代码如下:
- import os
- import pandas as pd
- # 指定文件夹路径
- folder_path = 'F:/code/out/'
- # 获取文件夹中所有的.xls文件
- files = [f for f in os.listdir(folder_path) if f.endswith('.xls')]
- # 遍历每个文件
- for file in files:
- # 构建文件的完整路径
- file_path = os.path.join(folder_path, file)
- # 读取.xls文件为字典,其中key为工作表名,value为对应的DataFrame
- xls_dict = pd.read_excel(file_path, sheet_name=None, engine='openpyxl')
- # 遍历每个工作表
- for sheet_name, df in xls_dict.items():
- # 去掉第一列
- df = df.iloc[:, 1:]
- # 将修改后的DataFrame保存到字典中
- xls_dict[sheet_name] = df
- # 构建新的文件名
- new_file_name = os.path.splitext(file)[0] + '.xlsx'
- # 保存为.xlsx文件
- new_file_path = os.path.join(folder_path, new_file_name)
- with pd.ExcelWriter(new_file_path, engine='openpyxl') as writer:
- for sheet_name, df in xls_dict.items():
- df.to_excel(writer, sheet_name=sheet_name, index=False)
- # 删除旧的.xls文件
- os.remove(file_path)
- print("转换完成!")
复制代码
在 pd.read_excel() 和 pd.ExcelWriter() 函数中添加了 engine='openpyxl' 参数,显式指定使用 openpyxl 引擎处理Excel文件。
这样就可以解决 "ValueError: Excel file format cannot be determined, you must specify an engine manually." 的问题。
球一个最佳答案谢谢啦!这对我非常重要!  
|
|