python;读取文件路径错误
python; reading file path error
我有一个目录结构;
DIR1:
----outerPyFile.py
----DIR2:
--------innerPyFile.py
--------DIR3:
------------fileToRead.csv
我正在 innerPyFile 中阅读 fileToRead.csv:pd.read_csv('DIR3/fileToRead.csv')
如果我 运行 innerPyFile.py 单独
工作正常
现在当在 outerPyFile.py 中导入 innerPyFile 模块时
import innerPyFile
-- FileNotFoundError: DIR3\fileToRead.csv.
不存在
我尝试在 innerPyFile 中用 绝对路径 替换路径作为 pd.read_csv(os.path.abspath('DIR3/fileToRead.csv'))
仍然,当我 运行 我得到 outerPyFile 时,
FileNotFoundError C:\\DIR1\\DIR3\\fileToRead.csv
不存在,
这里的代码省略了 DIR2 所以我把代码改成了 pd.read_csv(os.path.abspath('DIR2/DIR3/fileToRead.csv'))
现在代码结构可以在 运行 outerPyFile.py 时运行文件,这是可以接受的。
但是当我单独 运行 innerPyFile 时会出现问题,因为它将搜索 innerPyFile 的 CWD 中不存在的 DIR2。
任何人都可以怀疑这种行为,
请回复我这是怎么回事?
仅供参考,我也试过 pathLib 模块,但没有解决问题。
试试这个:
innerPyFile.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
import DIR2.innerPyFile
#......do something.....
我有一个目录结构;
DIR1:
----outerPyFile.py
----DIR2:
--------innerPyFile.py
--------DIR3:
------------fileToRead.csv
我正在 innerPyFile 中阅读 fileToRead.csv:pd.read_csv('DIR3/fileToRead.csv')
如果我 运行 innerPyFile.py 单独
现在当在 outerPyFile.py 中导入 innerPyFile 模块时
import innerPyFile
-- FileNotFoundError: DIR3\fileToRead.csv.
不存在
我尝试在 innerPyFile 中用 绝对路径 替换路径作为 pd.read_csv(os.path.abspath('DIR3/fileToRead.csv'))
仍然,当我 运行 我得到 outerPyFile 时,
FileNotFoundError C:\\DIR1\\DIR3\\fileToRead.csv
不存在,
这里的代码省略了 DIR2 所以我把代码改成了 pd.read_csv(os.path.abspath('DIR2/DIR3/fileToRead.csv'))
现在代码结构可以在 运行 outerPyFile.py 时运行文件,这是可以接受的。 但是当我单独 运行 innerPyFile 时会出现问题,因为它将搜索 innerPyFile 的 CWD 中不存在的 DIR2。
任何人都可以怀疑这种行为,
请回复我这是怎么回事?
仅供参考,我也试过 pathLib 模块,但没有解决问题。
试试这个:
innerPyFile.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
import DIR2.innerPyFile
#......do something.....