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

如何在Jupyter Notebook中访问其他文件夹下的带日期后缀Excel文件

修正方案与实现代码

你之前的操作存在两个核心误区:

  • sys.path.append 仅用于配置Python导入模块时的搜索路径,对操作系统文件路径的查找没有任何影响
  • os.listdir() 不传路径参数时,默认读取的是当前运行环境的工作目录,也就是notebooks文件夹,自然只能读到该目录下的内容

直接通过构造正确的files文件夹路径即可实现需求,完整可运行代码如下:

import os
import pandas as pd
from datetime import datetime

# 构造files文件夹路径:从当前notebooks目录向上跳一级,再进入files目录
files_dir = os.path.join(os.path.dirname(os.getcwd()), "files")

# 筛选所有符合命名规则的xlsx文件
excel_files = [
    f for f in os.listdir(files_dir) 
    if f.endswith(".xlsx") and f.startswith("filename_")
]

# 解析文件名中的日期,按日期倒序排列(最新的在前)
def parse_date_from_filename(filename):
    date_part = filename.split("_")[1].rstrip(".xlsx")
    return datetime.strptime(date_part, "%d%m%Y")

sorted_files = sorted(excel_files, key=parse_date_from_filename, reverse=True)

# 读取最新的2个文件为DataFrame
df_newest = pd.read_excel(os.path.join(files_dir, sorted_files[0]))
df_second_newest = pd.read_excel(os.path.join(files_dir, sorted_files[1]))

# 列对比示例:输出两个表的列差异
column_diff = set(df_newest.columns) ^ set(df_second_newest.columns)
print(f"两表列差异内容:{column_diff}")

补充说明

  • 如果你启动Jupyter的工作目录不是项目根目录,可以直接替换files_dir为files文件夹的绝对路径,避免相对路径查找错误
  • 代码完全适配后续新增的符合命名规则的文件,不需要修改任何硬编码内容
  • 如果需要跨系统兼容路径格式,更推荐用pathlib模块实现路径构造,不会出现斜杠方向错误的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:54:02