根据列表创建多个目录

时间:2011-04-20 04:53:37

标签: python

您好 我想在一个根目录中创建多个新目录,每个目录根据名称列表命名

e.g。

列表看起来像这样

FOLDER_1

Folder_x

Folder_y

在python中有一种简单的方法吗?

8 个答案:

答案 0 :(得分:9)

import os

root_path = '/whatever/your/root/path/is/'
folders = ['Folder_1','Folder_x','Folder_y']
for folder in folders:
    os.mkdir(os.path.join(root_path,folder))

答案 1 :(得分:1)

这是使用灵活的自定义功能执行此操作的一种方法。请注意,它使用os.makedirs()而不是os.mkdir(),这意味着如果需要,它还将创建根文件夹,并允许子文件夹路径包含中间级目录(如果需要)。

代码还使用functools.partial()创建一个名为concat_path()的临时本地函数,与内置map()函数一起使用,将根目录的名称与每个子文件夹连接起来。然后,只有将map()函数应用于所形成的每个完整子文件夹路径,它才会再次将os.makedirs()应用于该结果。

import os
from functools import partial

def makefolders(root_dir, subfolders):
    concat_path = partial(os.path.join, root_dir)
    makedirs = partial(os.makedirs, exist_ok=True)  # Python 3.2+
    for path in map(concat_path, subfolders):
        makedirs(path)

if __name__=='__main__':
    root_dir = '/path/to/root/folder'
    subfolders = ('Numbers/Folder_1', 'Letters/Folder_x', 'Letters/Folder_y')
    makefolders(root_dir, subfolders)

答案 2 :(得分:0)

os.mkdir(name_of_dir) 

是你的朋友。

答案 3 :(得分:0)

os.path.join合并您的根目录和名称,并os.mkdir创建目录。使用for循环很容易。

答案 4 :(得分:0)

根据需要设置文件夹名称

    import os

    root_path = '/home/sagnik'

    folders= [None] * 201
    for x in range(0,201):
        print(str(x))
        folders[x] ="folder"+str(x)

创建文件夹

    for folder in folders:
        os.mkdir(os.path.join(root_path,folder))

答案 5 :(得分:0)

from os import makedirs
makedirs('1/2/3/4/5/6/7/8/4/4/5/5/5/5/5/5/5/55/5/5/5/5')

通过这种方式,您将获得更多。

答案 6 :(得分:0)

我也遇到了同样的情况,最后得到了一个小的工作输出,尝试一下。

我有两个文件,第一个是程序文件,第二个是包含文件夹名称列表的.txt文件。

import os
f = open('folder.txt', 'r')
for g in f:
    os.mkdir(g)
f.close()

答案 7 :(得分:0)

import os

root_dir = 'root_path\\whateverYouWant\\'
list_ = ['Folder_1', 'Folder_x', 'Folder_y']
for folder in list_:
    os.makedirs(root_dir + folder)