我正在尝试在python中创建一些嵌套文件夹。
目标: 1)询问用户号码(让我们说3) 2)创建3个文件夹。 3)在每个文件夹中,应该有3个文件夹。 这种嵌套应该进行3次。
示例:
Folder1
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
Folder2
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
Folder3
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
Folder1中 文件夹2 Folder3
这是我目前的代码:
import os
i = 0
num = 0
while i<17:
num+=1
name="Python"+ str(num)
i+=1
这仅用于创建第一组文件夹(我已经拍摄了17个文件夹)。 非常感谢帮助。
(我正在运行Windows)
修改
更简洁的例子:http://s9.postimg.org/sehux992n/20141228_201038.jpg
(以3为用户输入)
从图像中我们可以看到有3层。
答案 0 :(得分:1)
部分代码,随时填写空白:
def recursive_make_folders(path, width, depth):
for i in range(1, width + 1):
folder_name = make_folder_name(i)
make_folder(path + folder_name)
if depth > 1:
recursive_make_folders(path + folder_name, width, depth - 1)
请注意,这会创建width ** depth
个文件夹,这些文件夹可能非常大,尤其是depth
增加时。
修改强>
path + folder_name
,您需要实际使用os.path.join(path, folder_name)
make_folder
应该成为os.mkdir
"."
作为初始路径答案 1 :(得分:1)
您不能在文件夹中包含具有相同名称的子目录。如果要添加具有不同名称的输入*输入目录:
import os
inp = int(raw_input())
folders = [("Folder{}".format(i)) for i in xrange(1,inp+1)]
for dr in xrange(1,inp+1):
os.makedirs("Folder{}".format(dr))
for fold in folders:
os.chdir(fold)
for i in xrange(1, inp*inp+1):
os.makedirs("Folder{}".format(i))
os.chdir("..")
也许这更接近你想要的东西:
import os
inp = int(raw_input())
folders = [("Folder{}".format(i)) for i in xrange(1, inp+1)]
for fold in folders:
os.makedirs(fold)
os.chdir(fold)
for fold in folders:
os.mkdir(fold)
os.chdir(fold)
for fold in folders:
os.mkdir(fold)
os.chdir("..")
os.chdir("..")