1

我有一个目录结构;

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


我在 innerPyFile 中读取fileToRead.csvpd.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 时,
FileNotFoundErrorC:\\\DIR1\\\DIR3\\\fileToRead.csv不存在,

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

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

任何人都可以怀疑这种行为,
请回复我这是怎么回事?

仅供参考,我也尝试过pathLib模块,但没有解决问题。

4

1 回答 1

1

尝试这个:

内部 PyFile.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)

外皮文件.py

import DIR2.innerPyFile
#......do something.....
于 2018-08-27T10:00:09.440 回答