Python:使用输入和循环创建文件夹结构

时间:2014-01-28 14:13:43

标签: python loops python-3.x directory

我可能已经把它作为第一个Python项目了,但嘿,崩溃和学习!

我正在尝试找到一种方法在网络驱动器上创建文件夹结构,此时通过手动输入来命名新创建的文件夹。到目前为止,我已经成功地设置了一次文件夹结构,但是当涉及到第三个文件夹级别时,我希望能够在该级别创建多个文件夹:

  • 基础文件夹(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()

对于缩进等感到抱歉,我认为它不会立即造成问题。只是试图让“环回”工作。是的,我知道这是一团糟。

2 个答案:

答案 0 :(得分:0)

返回二级目录:

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

或者如果在Linux / Mac上:

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

答案 1 :(得分: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)