2016-05-31 32 views
0

我有下面的代碼,os.mkdir不工作在我的。編譯不會返回任何錯誤,但運行代碼不會創建文件夾。os.mkdir下如果不工作python

def folder(): 
    timenow = datetime.now().strftime('%Y-%m-%d_%H%M%S') 
    folderpath = os.path.join(currentpath,"folder",str(timenow)) 
    if os.path.exists(folderpath) == False: 
     os.mkdir(folderpath) 
    return 
+1

你能張貼代碼,以便有人能看懂了嗎? –

+0

什麼是'currentpath'? – 101

+0

當前路徑是目錄:C:\ PythonScript –

回答

1

試試這個:

def folder(): 
    timenow = datetime.now().strftime('%Y-%m-%d_%H%M%S') 
    folderpath = os.path.join(currentpath, "folder", str(timenow)) 
    if not os.path.exists(folderpath): 
     os.makedirs(folderpath) 
     print 'Created:', folderpath 

folder() 

makedirs將創建所需的子目錄,而mkdir只能創建一個目錄。也就是說,你應該看到一個例外。

+0

感謝您!,只是想知道爲什麼makedir現在顯示一個異常,當它昨天爲相同的代碼工作正常。 –

+0

不用擔心。這可能是因爲子目錄已經存在,你只是在最後創建'timenow'目錄(這應該是有效的)。 – 101

0

這是我在它刺傷,有一些小的錯誤處理...

def folder(): 
    timenow = datetime.now().strftime('%Y-%m-%d_%H%M%S') 
    folderpath = os.path.join(os.getcwd(),"folder",str(timenow)) 
    if not os.path.exists(folderpath): 
     os.makedirs(folderpath) 
     if os.path.exists(folderpath): 
      return (True, folderpath) 
    return (False, folderpath) 

f = folder() 

if f[0]: 
    print '"%s" was successfully created!' % (f[1]) 
else: 
    print '"%s" could not be created, does the folder already exist? Do you have appropriate permissions to create it?' % (f[1]) 
+1

感謝這一點,但第一個IF處理其中的一個,你不覺得嗎? –

+0

如果該文件夾不存在,請創建它,然後使用第二個if來確保剛剛創建的文件夾實際上已成功創建。僅僅因爲你說要創建一個文件夾並不意味着你的系統上沒有其他變量可能會導致你啓動的文件夾創建失敗,例如權限問題,完整硬盤,壞扇區等。 – AWainb

+0

難題!非常感謝你 –