執行test.py
從/tmp
如果我改變當前的工作目錄,爲什麼__file__變成無效路徑?
import os
print os.path.abspath(__file__)
os.chdir('/var')
print os.path.abspath(__file__)
輸出:
/tmp/test.py
/var/test.py
我期望的第二輸出爲/tmp/test.py
。這是一個錯誤還是預期的行爲?有沒有辦法獲得不受chdir
影響的文件的實際位置?
我使用Python 2.7
由於'__file__'在你的情況下是相對的,因爲它與你在命令行中傳遞給'python'的*完全相同*。 'os.path.abspath()'在這種情況下別無選擇,只能根據當前工作目錄進行設置。 –