如何在python中递归创建文件/文件夹?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (221)

我希望能够在python中编写一个脚本,该脚本将递归地创建一定数量的文件/文件夹到某个位置。例如,我需要某种for循环,它将创建路径C:\temp的folder 1、folder 2、folder 3。我认为for循环是最好的方法,并且也使用os

提问于
用户回答回答于

看一看https://docs.python.org/2/library/os.html#os.makedirs。也许会有帮助。

用户回答回答于

下面是一个递归解决方案,它将在指定的目录和所有子目录中创建一个文件…让它创建目录而不是创建文件应该非常容易:

#! /usr/bin/python3.5
import os
import os.path
import sys


# recursively create a file in all subdirectories of a given directory
# all dirs/subdirs should have different names
def create(finished_folders):
    os.chdir("/path/to/the/desired_directory")
    current_dir = os.path.basename(os.getcwd())
    available_dirs = os.listdir(".")
    for d in available_dirs:
        if d in finished_folders:
            available_dirs.remove(d)
        if not os.path.isdir(d):
            available_dirs.remove(d)
    if current_dir not in finished_folders:
        while len(available_dirs) > 0:
            next_dir = available_dirs.pop()
            if next_dir not in finished_folders and os.path.isdir(next_dir):
                os.chdir(next_dir)
                available_dirs = os.listdir(".")
                for directory in available_dirs:
                    if directory in finished_folders:
                        available_dirs.remove(directory)
                    if not os.path.isdir(directory):
                        available_dirs.remove(directory)
        os.system("touch fi.txt")
        finished_folders += [os.path.basename(os.getcwd())]
        create(finished_folders)
    else:
        print("FINISHED")
        sys.exit()


if __name__ == "__main__":
    folders = []

创建(文件夹)

扫码关注云+社区

领取腾讯云代金券