2014-09-28 43 views
1

我正在嘗試創建一個名爲〜/ .Trash(其隱藏目錄)而不使用FileExistsError的文件夾。我想創建目錄而不會引發錯誤。創建新文件夾時防範FileExistsError

try: 
    os.mkdir('~/.Trash') 
except OSError as ex: 
    if ex.errno == errno.EEXIST: 
    print '' #I leave it blank 
    else: 
    raise 

但我收到以下錯誤:

OSError: [Error 2] No such file or directory '~/.Trash' 

如何創建一個目錄防範FileExistsError?

+1

可能重複[檢查是否存在一個目錄,並在必要時創建它(http://stackoverflow.com/questions/273192/check-if-a-directory-exists-and-create-it-如果必要) – MattDMo 2014-09-28 23:51:48

+1

@MattDMo雖然問題看起來很相似,但這不是直接重複的。這個問題實際上是關於'〜'擴展。 – davidism 2014-09-29 00:01:34

回答

2

問題是代字號(~)沒有像在Bash中那樣擴展到Python的主目錄。因此,您正試圖在(不存在的)目錄~下創建目錄.Trash。如果您需要相對於主目錄的路徑,則可以使用os.path.expanduser(path)。的

try: 
    os.mkdir(os.path.expanduser('~/.Trash')) 
except OSError as e: 
    if e.errno != os.errno.EEXIST: 
     raise