导入模块:没有这样的文件或目录
问题描述:
这是我的目录的可视化表示:导入模块:没有这样的文件或目录
这里是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
得到IO错误:没有这样的文件或目录:“./test1.dat”
我的问题是:
,如果我不改变目录的结构,例如移动TEST2 .py到它的父目录,是否有可能使模块test1在模块test2中调用时找到正确的文件?
答
这会给你的路径加载一个模块:
import a_module
print a_module.__file__
进入模块的目录:
import os, a_module
path = os.path.dirname(a_module.__file__)
全部放在一起,我会用这种方法如果你正在寻找相对于另一个模块的文件:
from 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")
http://*.com/questions/779495/python-access-data-in-package-subdirectory – 2013-03-20 18:07:42
@redShadow,是的,我只可以读取父目录。 – camino 2013-03-20 18:10:02