鱼C论坛

 找回密码
 立即注册
查看: 36|回复: 1

Python 如何处理Excel文件,如果xls格式改为xlsx,其他默认不变

[复制链接]
发表于 昨天 16:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
if file_name.endswith('.xls'):
                df=pd.read_excel(file_name)   
                df.to_excel(f"{folder}.xlsx",index=False)     

Python 如何处理Excel文件,如果xls格式改为xlsx,其他默认不变
已经写完xls改为xlsx了,但是文件里面如果有xlsx格式运行就会报错,如何让xlsx格式不变,还能运行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 16:20 | 显示全部楼层
在Python中处理Excel文件时,若需保留`.xlsx`文件不变且仅转换`.xls`文件,需明确区分两种格式。以下是优化后的代码方案:

解决方案:
1. 使用条件判断区分`.xls`和`.xlsx`文件
2. 仅对`.xls`执行转换操作,`.xlsx`直接读取
3. 避免重复读取文件(提升效率)


  1. import pandas as pd

  2. def process_excel(file_path):
  3.     if file_path.lower().endswith('.xls'):
  4.         # 读取.xls并转换为.xlsx
  5.         df = pd.read_excel(file_path)
  6.         new_path = file_path.rsplit('.', 1)[0] + '.xlsx'
  7.         df.to_excel(new_path, index=False)
  8.         print(f"已转换: {file_path} -> {new_path}")
  9.         return df  # 直接返回已读取的数据
  10.    
  11.     elif file_path.lower().endswith('.xlsx'):
  12.         # 直接读取.xlsx文件
  13.         return pd.read_excel(file_path)
  14.    
  15.     else:
  16.         raise ValueError("仅支持.xls或.xlsx文件")

  17. # 使用示例
  18. file_name = "your_file.xls"  # 或.xlsx
  19. data_frame = process_excel(file_name)
  20. # 后续操作...
复制代码


关键点说明:
1. 通过lower().endswith()兼容大小写扩展名
2. rsplit('.',1)[0] 确保正确替换扩展名(即使文件名中含有点)
3. 转换`.xls`时:
   - 读取数据到DataFrame
   - 生成新路径(如data.xls → data.xlsx
   - 保存时index=False避免额外索引列
4. 直接返回DataFrame对象,避免重复读取文件

此方案能正确处理两种格式,且不会影响现有`.xlsx`文件运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-5 06:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表