這是我的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。
這是我的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。
這只是一個無害的窗口怪癖;您可以通過使用os.path.abspath(__file__)
補償,見the docs
os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__)))
閱讀'os.path.abspath'的功能。 – SilentGhost 2009-09-28 09:01:06
在許多情況下,最好使用:
os.path.dirname(sys.argv[0])
難道我用'abspath'只有當我在Windows或做我用它不管? – 2009-09-27 16:04:24
我可能會使用它。 – 2009-09-27 16:06:39
它不只是windows – SilentGhost 2009-09-27 16:09:28