2017-05-09 120 views
0

How to get the home directory in Python?How to find the real user home directory using python?,有可能找到用戶的主目錄中:os.path.expanduser('〜/')會不會返回目錄?

import os 
os.path.expanduser('~/') 

會有一個機會,os.path.expanduser()無法找到任何東西,返回~/

我問這個問題,因爲,從nltk,有這條線在https://github.com/nltk/nltk/blob/develop/nltk/downloader.py#L951

homedir = os.path.expanduser('~/') 
if homedir == '~/': 
    raise ValueError("Could not find a default download directory") 

注:現在的問題是不問如何找到用戶主目錄,它詢問是否有任何點檢查os.path.expanduser的值並引發錯誤。

+0

可能重複的[如何找到真正的用戶主目錄使用python?](http://stackoverflow.com/questions/2668909/how-to-find-the-real-user-home-directory-using- python) –

+0

是的,'ValueError'對於'raise'是一件好事,因爲代碼不應該繼續進行下去,直到有另一個策略用於查找正確的目錄。 – JacobIRR

回答

1

在正式文件中。

在Unix上,如果設置了 ,則在環境變量HOME中替換初始值〜;否則通過內置模塊pwd在 密碼目錄中查找當前用戶的主目錄。直接在密碼目錄中查找最初的 〜用戶。

...

如果 擴展失敗,或者如果路徑不以一個波浪線開始,路徑 原封不動地返回。

因此,如文件所述,如果操作失敗,它將返回原始字符串。而且,重點是,返回不變路徑,但不是 不斷~/