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

如何在Tkinter中使用Python调用最新的Excel文件?

解决方案

要自动读取指定目录下最新的Excel文件,你可以通过遍历目录、比较文件修改时间来实现。修改后的代码如下:

import os
import pandas as pd
from tkinter import LabelFrame  # 假设你已导入tkinter相关组件

class Tables():
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        frame_results = LabelFrame(frame_bottom, text='Results', font='Verdana 8')
        frame_results.pack(side=BOTTOM, fill=BOTH, expand=TRUE)
        self.table=Table(frame_results,dataframe=self.read(),
        showtoolbar=True,
        showstatusbar=True,
        editable=True,)
        self.table.show()
        
    def read(self):
        # 指定目标目录
        target_dir = r"C:\Users\ruben.carballo\Desktop\Nodes_Real_Atr_v2_Plots\Results"
        
        # 获取目录下所有xlsx文件
        excel_files = [f for f in os.listdir(target_dir) if f.endswith('.xlsx')]
        if not excel_files:
            raise FileNotFoundError("目标目录下没有Excel文件")
        
        # 拼接完整路径并按修改时间排序,取最新的文件
        full_paths = [os.path.join(target_dir, f) for f in excel_files]
        # 按文件修改时间降序排列,最新的在第一个
        full_paths.sort(key=lambda x: os.path.getmtime(x), reverse=True)
        latest_file = full_paths[0]
        
        # 读取最新的Excel文件
        data = pd.read_excel(latest_file)
        return data

关键改动说明:

  • 导入os模块用于文件系统操作
  • 替换固定文件名逻辑为动态查找:
    • 遍历目标目录,筛选所有.xlsx后缀的文件
    • 基于文件修改时间排序,取排序后的第一个文件(最新的)
    • 增加无Excel文件的异常处理,避免程序崩溃

额外说明:

  • 若需按文件创建时间排序,可将os.path.getmtime替换为os.path.getctime(注意:Windows下getctime是创建时间,Linux下是元数据修改时间)
  • 确保目标目录路径正确,且程序拥有该目录的读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:42:52