2013-04-25 69 views
0

依赖Python的导入文件我有依赖于一个文本文件ex.txt文件ref.py,即在同一个目录\home\ref_dir。因此,它工作正常,当我运行该文件ref.py,但如果我尝试导入ref.py到另一个文件work.py在不同的目录\home\work_dir,我做了以下在同一个文件夹中

import sys 
sys.path.append('\home\ref_dir') 
import ref 

但后来我得到一个错误,该程序无法找到ex.txt

我该如何解决这个问题,而无需使用绝对路径。有任何想法吗?

回答

1

使用OS模块获得访问到你在模块的当前绝对路径,然后从那个

你想在你的文件中像这样打开ex.txt的目录名。

import os 

with open('%s/ex.txt' % os.path.dirname(os.path.abspath(__file__)) as ex: 
    print ex.read() 
+0

由于某种原因,我得到这个: 回溯(最近最后一次通话): 文件 “”,1号线,在 os.path.abspath则(__ FILE__) NameError:名字 '__file__' 是没有定义 – hmghaly 2013-04-25 13:20:08

+0

当然你会,你会认为什么文件“shell”是? :-P保存对文件的更改,然后从python运行该文件。因此,而不是Python,然后在解释器中键入__file__,做“python filename.py”,__file__将有实际参考:) – Bryan 2013-04-25 13:22:20

+0

'__file__'通常是我如何做这种事情。 FWIW如果你只想分发'.pyc'文件,我认为这会中断('__file__'基本上是'pyc'文件生成的一个常量),不知道为什么你想这样做! – monk 2013-04-25 13:28:20

相关问题