具有多个子文件夹的mkdir不嵌套

时间:2019-08-26 07:13:51

标签: python

我想使用python创建自动文件创建。它的工作方式是遵循“ E:\ Videos /”的路径,然后创建一个带有用户输入的“标题”的文件。然后,我想在其中放置两个子文件夹,尽管它在“ / clips”文件中创建了“ / thumbnail”文件。解决这个问题的最佳方法是什么?谢谢!

我尝试重复mkdir来创建另一个子文件夹,尽管由于我的标题是由用户输入而出现的,所以遇到了问题。

from datetime import datetime
import time
import os

today = datetime.now()
title = input('Enter Title: ')

os.makedirs("E:\Videos/" + today.strftime('%d-%m-%Y ----- ') + title + '/clips' + '/thumbnail')

print('File Created Successfully')
time.sleep(1.5)

为澄清起见,我希望目录结构如下所示:“ E:\ Videos [title] /”,并且在[title]文件夹中有两个子文件夹,一个名为“ clips”,一个名为“ thumbnail”。希望这会使它更容易理解

1 个答案:

答案 0 :(得分:0)

您需要recursive method, like makedirs,才能在一行中创建目录和嵌套的子目录:

from datetime import datetime
import os

today = datetime.now()
title = input('Enter Title: ')
dirpath = os.path.join(r"E:\Videos", today.strftime('%d-%m-%Y'), title, 'clips', 'thumbnail')

os.makedirs(dirpath)

但是,如果您不希望thumbnail进入clips目录,则只需将最后几行替换为:

maindir = os.path.join(r"E:\Videos", "{} -- {}".format(today.strftime('%d-%m-%Y'), title))

clipsdir = os.path.join(maindir, 'clips')
os.makedirs(clipsdir)

thumbsdir = os.path.join(maindir, 'thumbnails')
os.makedirs(thumbsdir)
  
      
  • 避免在路径中使用串联,而是首选专用方法,例如os.path.join
  •   
  • 此外,在处理文件和目录方面,我个人喜欢path.py
  •