| 
 | 
 
 
发表于 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." 的问题。 
 
球一个最佳答案谢谢啦!这对我非常重要!    
 |   
 
 
 
 |