2015-10-06 5 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__))

Смежные вопросы