2009-09-27 63 views
5

這是我的Python程序:路徑當前文件取決於我如何執行程序

#!/usr/bin/env python 

import os 

BASE_PATH = os.path.dirname(__file__) 
print BASE_PATH 

如果我運行這個使用python myfile.py它打印一個空字符串。如果我使用myfile.py運行它,它會打印正確的路徑。爲什麼是這樣?我使用的是Windows Vista和Python 2.6.2。

回答

8

這只是一個無害的窗口怪癖;您可以通過使用os.path.abspath(__file__)補償,見the docs

+0

難道我用'abspath'只有當我在Windows或做我用它不管? – 2009-09-27 16:04:24

+0

我可能會使用它。 – 2009-09-27 16:06:39

+0

它不只是windows – SilentGhost 2009-09-27 16:09:28

0
os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__))) 
+1

閱讀'os.path.abspath'的功能。 – SilentGhost 2009-09-28 09:01:06

0

在許多情況下,最好使用:

os.path.dirname(sys.argv[0]) 
相關問題