在同一个文件夹中
问题描述:
依赖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
我该如何解决这个问题,而无需使用绝对路径。有任何想法吗?
答
使用OS模块获得访问到你在模块的当前绝对路径,然后从那个
你想在你的文件中像这样打开ex.txt的目录名。
import os
with open('%s/ex.txt' % os.path.dirname(os.path.abspath(__file__)) as ex:
print ex.read()
由于某种原因,我得到这个: 回溯(最近最后一次通话): 文件 “”,1号线,在 os.path.abspath则(__ FILE__) NameError:名字 '__file__' 是没有定义 –
hmghaly
2013-04-25 13:20:08
当然你会,你会认为什么文件“shell”是? :-P保存对文件的更改,然后从python运行该文件。因此,而不是Python,然后在解释器中键入__file__,做“python filename.py”,__file__将有实际参考:) – Bryan 2013-04-25 13:22:20
'__file__'通常是我如何做这种事情。 FWIW如果你只想分发'.pyc'文件,我认为这会中断('__file__'基本上是'pyc'文件生成的一个常量),不知道为什么你想这样做! – monk 2013-04-25 13:28:20