这是我目录的直观表示:
这是test1.py
的代码段....
def foo():
f=read("./test1.dat","r")
....
这是test2.py
的代码import imp
TEST1 = imp.load_source('test1', '../test1.py')
def test2():
TEST1.foo()
运行test2.py
cd subdir
python test2.py
得到了IOERROR:否这样的文件或目录:“。/ test1.dat”
我的问题是:
如果我不更改目录的结构,例如将test2.py移动到其父目录,是否可以让模块test1在模块test2中调用它时找到正确的文件?
答案 0 :(得分:0)
这将为您提供已加载模块的路径:
import a_module
print a_module.__file__
获取模块的目录:
import os, a_module
path = os.path.dirname(a_module.__file__)
总而言之,如果您正在寻找相对于另一个模块的文件,我会使用这种方法:
来自test1.py
def foo(path):
f=read(path,"r")
来自test2.py
import os, test1
path = os.path.dirname(test1.__file__)
test1.foo(path + "/test1.dat")