2015-10-06 94 views
2

在Python中,我能做到這一點,以獲得當前文件的路徑:如何獲得執行當前線程的文件的當前路徑?

os.path.dirname(os.path.abspath(__file__)) 

但是,如果我在一個線程中運行這個說:

def do_stuff(): 
    class RunThread(threading.Thread): 
     def run(self): 
      print os.path.dirname(os.path.abspath(__file__)) 
    a = RunThread() 
    a.start() 

我得到這個錯誤:

Traceback (most recent call last): 
    File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner 
    self.run() 
    File "readrss.py", line 137, in run 
    print os.path.dirname(os.path.abspath(__file__)) 
NameError: global name '__file__' is not defined 

回答

2
import inspect 
print(inspect.stack()[0][1]) 

inspect

+0

我只是嘗試這樣做。這真的很酷。 – idjaw

+0

是否有可能獲得絕對路徑? –

+0

@ Stupid.Fat.Cat在檢查文檔我沒有找到絕對路徑提及我知道只有可以檢查與os.path.isabs如果它是否...... – LetzerWille

-1

對於我之前的回答,我表示歉意。我半睡半醒,回答得很蠢。 每次我完成你想要做的事情時,我都是以相反的順序使用它。例如。 os.path.abspath(os.path.dirname(__file__))

相關問題