【发布时间】:2017-12-06 18:17:34
【问题描述】:
我的目标是从对应于目录和子目录的列表中创建一个函数。
例如:'reports/English'对应目录'reports'中的子目录'English'。
这是我的功能:
for i in lst:
splitted = i.split('/')
if not os.path.exists(destination_directory + '\\' + splitted[0]) :
os.mkdir(destination_directory + '\\' + splitted[0])
os.mkdir(destination_directory + '\\' + splitted[0] + '\\' + splitted[1])
else :
os.mkdir(destination_directory + '\\' + splitted[0] + '\\' + splitted[1])
我不想使用 os.chdir 函数,因为害怕在文件夹中迷失自己。
我想做一个递归函数,我试过这个:
def my_sub_function(splitted):
"""
"""
if splitted == []:
return None
else:
if not os.path.exists(destination_directory + '\\' + splitted[0]) :
os.mkdir(destination_directory + '\\' + splitted[0])
os.mkdir(destination_directory + '\\' + splitted[0] + '\\' + splitted[1])
else :
os.mkdir(destination_directory + '\\' + splitted[0] + '\\' + splitted[1])
return t1(splitted[1:])
所以,考虑一下这个列表:
lst_1 =
['music',
'reports/English',
'reports/Spanish',
'videos',
'pictures/family',
'pictures/party']
如果我这样做:
it will creates these directories :
.\\music
.\\reports\\English
.\\reports\\Spanish
.\\videos
.\\pictures\\family
.\\pictures\\party
但我仅限于一个目录并且只有一个子目录。 我希望我的函数能够处理 3 或 4 个子目录,以便它可以创建类似这样的内容:
.\\pictures\\family\\Christmas\\meal\\funny
有人有想法吗?
谢谢!
【问题讨论】:
-
你能更详细地解释一下“它不起作用”是什么意思吗?它在做什么?
-
您只是在寻找
os.makedirs()吗? -
对不起,我的帖子含糊不清,我希望现在更明确
-
我必须设法在没有 os.makedirs() #schoolwork 的情况下做到这一点
标签: python-3.x function recursion