如何在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
相关产品推荐
相关产品推荐

