2014-01-28 73 views
1

我可能採取的有點多爲第一Python項目,但嘿,偶們學習!的Python:創建與輸入文件夾結構和循環

我試圖找到一種方法來創建一個網絡驅動器上的文件夾結構,通過手動輸入它的命名在旅途中新創建的文件夾,此刻。我已經挑選過,以至於我設法創建了一次文件夾結構,但是當涉及到第三個文件夾級別時,我希望可以在該級別創建多個文件夾:

  • Base文件夾(Q :)
    • 第一級(年)
      • 第二級(KNR)
        • 第三級#1(bgnr)
          • 第四級#1(轉儲)
          • 第四級#2(出口)
          • 第四級#3(報告)
        • 第三級#2(bgnr)
          • 第四級#1(轉儲)
          • 第四級# 2(出口)
          • 第四級#3(報告)

正如我所說,我試圖找到我前進的方向,這是我想出來的:

import os, sys, errno 
    os.chdir("Q:") 
    cwd = os.getcwd() 
    year = input("What year?: ") 
    if not os.path.exists(year): 
     os.makedirs(year) 
    os.chdir(year) 
    knr = input("Write K-number: ") 
    if not os.path.exists(knr): 
     os.makedirs(knr) 
    os.chdir(knr) 
    bgnr = input("Write BG-nummer: ") 
    if not os.path.exists(bgnr): 
     os.makedirs(bgnr) 
    os.chdir(bgnr) 
    os.makedirs("Dumps") 
    os.makedirs("Exports") 
    os.makedirs("Reports") 

我用下面的嘗試,但失敗了慘敗..

def bgnrloop(): 
     global retake 
     retake = input("Do you want to create another folder? (Y/N) ") 

     if retake() in {"y", "Y"}: 
      bgnrfunc() 
     elif retake() in {"n", "N"}: 
      bgnrfunc() 
     else: 
      print("Valid response: y/Y or n/N.") 
    bgnrloop() 

對不起壓痕等,它不會對眼前的問題的時候了,我認爲..只是試圖讓「迴路」的工作。是的,我知道這是一團糟。

回答

0

回到你的二級目錄:

os.chdir('Q:\\year\\knr\\') 

或者,如果在Linux/Mac上:

os.chdir('Q:/year/knr/') 
+0

我已經成功地得到文件夾創建分類像我想,這是創建另一個文件夾馬上後的整體結構是通過回答是或否停止 – Foggy

+0

要澄清的可能性,它的' bgnr =輸入( 「寫BG-nummer 」)'和向下'os.makedirs(「 報告」)'我想使..加入影片箱 – Foggy

0

找到了解決辦法!還有一些動作要做,但我設法讓它在IDLE和PyScripter中運行。

#! python 3.3.3 

import os, sys, errno 
os.chdir("Q:") 
year = input("What year?: ") 
if not os.path.exists(year): 
    os.makedirs(year) 
os.chdir(year) 
knr = input("Write K-number: ") 
if not os.path.exists(knr): 
    os.makedirs(knr) 
os.chdir(knr) 
bgnr = input("Write BG-nummer: ") 
    if not os.path.exists(bgnr): 
     os.makedirs(bgnr) 
     os.chdir(bgnr) 
     os.makedirs("Dumps") 
     os.makedirs("Exports") 
     os.makedirs("Reports") 
bgnrcreate() 

while True: 
     answer = input("Skapa mer? (j/n): ") 
     if answer == "n": 
       break 
     else: 
      os.chdir(os.pardir) 
      bgnrcreate() 
sys.exit(0)