Python 从单独文件夹中的 jupyter notebook 访问 excel 文件

Python accessing excel files from jupyter notebook in separate folder

根据标题,我无法根据文件名访问另一个文件夹中的某些 excel 文件。

我有一个包含一堆 excel 文件的文件夹,这些文件共享一个通用名称,但所有文件都有一个单独的日期戳作为后缀附加在 /files/filename_%d%m%Y.xlsx 格式中给我一个目录像这样:

├── files
│   ├── filename_10102021.xlsx
│   ├── filename_07102021.xlsx
│   ├── filename_11102021.xlsx
│   └── filename_14102021.xlsx
├── notebooks
│   └── my_notebook.ipynb

my_notebook.ipynb文件,我想导航到files目录,并根据后缀日期获取最近的2个excel文件,并在notebook as pandas dfs 这样我就可以比较各列的差异。在我上面提供的目录中,我将获得的 2 个文件是 filename_14102021.xlsxfilename_11102021.xlsx,但希望此解决方案能够动态工作,因为文件文件夹会随着时间的推移获取具有新日期的新文件。 (所以硬编码这两个名字是行不通的)

我的第一个想法是做这样的事情:

import os
import sys
import pandas as pd

sys.path.append('../files')
files = sorted(os.listdir(), reverse=True)

most_recent_df = pd.read_excel(files[0], engine='openpyxl', index_col=0)  
second_most_recent_df = pd.read_excel(files[1], engine='openpyxl', index_col=0)  

然后在数据帧之间进行比较。

然而,即使使用 sys.path.appendos.listdir 函数 returns notebooks 目录的列表告诉我问题出在这个2 行:

sys.path.append('../files')
files = sorted(os.listdir(), reverse=True)

如何修复我的代码以移至文件目录以便返回所有 excel 文件的列表?

谢谢!

它应该可以直接使用

files = sorted(os.listdir(r'path\to\folder'), reverse=True)

IMO 你不需要使用 sys.path.append