根据标题,我在另一个文件夹中访问某些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文件,并在笔记本中以pandas dfs的形式打开它们,以便我可以比较列中的任何差异。在我上面提供的目录中,我将获得的两个文件是filename_14102021.xlsx
和filename_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.append
,os.listdir
函数返回笔记本目录的列表,告诉我问题在于这2行:
sys.path.append('../files')
files = sorted(os.listdir(), reverse=True)
如何修复我的代码移动到文件目录,这样所有excel文件返回的列表吗?
谢谢!
应该可以直接使用
files = sorted(os.listdir(r'pathtofolder'), reverse=True)
在我看来你不需要使用sys.path.append