python;读取文件路径

2024-09-28 17:02:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个目录结构

DIR1: ----outerPyFile.py ----DIR2: --------innerPyFile.py --------DIR3: ------------fileToRead.csv


我在看书文件读取.csv在innerPyFile中:pd.read_csv('DIR3/fileToRead.csv')如果我跑的话效果很好内部文件.py单独

现在导入innerPyFile模块时outerPyFile.py作为
import innerPyFile
--FileNotFoundError:DIR3\\fileToRead.csv.不存在

我尝试用innerPyFile中的绝对路径替换为pd.read_csv(os.path.abspath('DIR3/fileToRead.csv'))

不过,当我运行outerPyFile时,
FileNotFoundErrorC:\\\DIR1\\\DIR3\\\fileToRead.csv不存在

这里的代码省略了DIR2,所以我将代码改为pd.read_csv(os.path.abspath('DIR2/DIR3/fileToRead.csv'))

现在代码结构在我运行时可以正常工作outerPyFile.py这是可以接受的。 但是在这里,当我单独运行innerPyFile时会出现问题,因为它将搜索innerPyFile的CWD中不存在的DIR2。在

任何人都可以怀疑这种行为,
请告诉我发生了什么事?在

仅供参考,我还尝试了pathLib模块,但没有解决问题。在


Tags: 模块文件csv代码pyreados结构
1条回答
网友
1楼 · 发布于 2024-09-28 17:02:02

试试这个:

内部文件.py

import os
script_path = os.path.abspath(__file__) # i.e. /path/to/dir/foobar.py
script_dir = os.path.split(script_path)[0] #i.e. /path/to/dir/
rel_path = "DIR3/fileToRead.csv"
abs_file_path = os.path.join(script_dir, rel_path)

pd.read_csv(abs_file_path)

outerPyFile.py

^{pr2}$

相关问题 更多 >