Python 如何处理Excel文件,如果xls格式改为xlsx,其他默认不变
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格式不变,还能运行 在Python中处理Excel文件时,若需保留`.xlsx`文件不变且仅转换`.xls`文件,需明确区分两种格式。以下是优化后的代码方案:
解决方案:
1. 使用条件判断区分`.xls`和`.xlsx`文件
2. 仅对`.xls`执行转换操作,`.xlsx`直接读取
3. 避免重复读取文件(提升效率)
import pandas as pd
def process_excel(file_path):
if file_path.lower().endswith('.xls'):
# 读取.xls并转换为.xlsx
df = pd.read_excel(file_path)
new_path = file_path.rsplit('.', 1) + '.xlsx'
df.to_excel(new_path, index=False)
print(f"已转换: {file_path} -> {new_path}")
return df# 直接返回已读取的数据
elif file_path.lower().endswith('.xlsx'):
# 直接读取.xlsx文件
return pd.read_excel(file_path)
else:
raise ValueError("仅支持.xls或.xlsx文件")
# 使用示例
file_name = "your_file.xls"# 或.xlsx
data_frame = process_excel(file_name)
# 后续操作...
关键点说明:
1. 通过lower().endswith()兼容大小写扩展名
2. rsplit('.',1) 确保正确替换扩展名(即使文件名中含有点)
3. 转换`.xls`时:
- 读取数据到DataFrame
- 生成新路径(如data.xls → data.xlsx)
- 保存时index=False避免额外索引列
4. 直接返回DataFrame对象,避免重复读取文件
此方案能正确处理两种格式,且不会影响现有`.xlsx`文件运行。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]