【问题标题】:Python: Creating folder structures with inputs and loopsPython:使用输入和循环创建文件夹结构
【发布时间】:2014-02-19 21:19:29
【问题描述】:

作为第一个 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()

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

【问题讨论】:

    标签: python loops python-3.x directory


    【解决方案1】:

    找到了解决办法!仍然需要做一些修改,但我已经设法让它在 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)
    

    【讨论】:

      【解决方案2】:

      回到你的二级目录:

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

      或者如果在 Linux/Mac 上:

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

      【讨论】:

      • 我已经设法按照我想要的方式对文件夹创建进行排序,有可能在整个结构通过回答是或否停止后立即创建另一个文件夹
      • 澄清一下,从bgnr = input("Write BG-nummer: ")os.makedirs("Reports"),我想让它成为可循环的..
      猜你喜欢
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多