我在一组具有以下结构的目录中工作:
Master/
Subfolder_1/file_1_1.py
file_1_2.txt
Subfolder_2/file_2_1.py
我在 file_2_1 中导入 file_1_1,如下所示:
import sys
sys.path.append('../file_1_1')
file_1_1 正在读取同一目录中的 file_1_2.txt。但是,当我调用从 file_2_1.py 读取 file_1_2.txt 的函数时,它说没有这样的文件和目录,它给我 file_1_2.txt 的路径如下:
Master/Subfolder_2/file_1_2.txt
这是一条错误的道路。在这种情况下,python 似乎正在使用工作目录作为引用。鉴于我不想包含我读取的每个文件的绝对路径,我该如何解决此错误。
最佳答案
不要乱用 sys.path
,也不要认为导入是针对文件和目录的。最终一切都必须存在于某个文件中,但模块层次结构比“用斜线替换点并在末尾粘贴 .py”更微妙。
您几乎肯定想进入 Master
并运行 python -m Subfolder_1.file_1_1
。您可以使用 pkg_resources获取文本文件:
pkg_resources.resource_string('Subfolder_1', 'file_1_1.txt')
关于Python:从另一个目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232421/