2013-04-25 65 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

相關問題