在Python中将文件复制到不存在的目录

时间:2014-09-28 11:39:38

标签: python

我正在尝试编写一个复制fotos并根据日期重命名它们的程序,我想自动将照片复制到给定的子文件夹,即“\ ... \ 2014-09-28 \ 13:34.jpg”。复制到现有文件夹效果很好,但至少shutils copy2命令似乎无法动态创建那些不存在的子文件夹,即它引发

  

IOError:[Errno 2]没有这样的文件或目录:'C:\ Users \ Roman \ Desktop \ Foddos!\ Tmp \ 2010-03 \ 13(0).jpg'

(请注意,2010-13子文件夹不存在)是否存在任何方法?

PS:整个程序与os.rename配合得很好。但我不想移动我的文件(并将它们复制到临时目录,而不是使用重命名似乎是一个非常讨厌的解决方法)

PPS:我在Windows 7上使用Python 2.7.6

1 个答案:

答案 0 :(得分:5)

简单的解决方案是首先检查目录是否存在os.path.isdir,如果没有创建它。

if not os.path.isdir(os.path.join(parent, subdir)):
   os.mkdir(os.path.join(parent, subdir))

# Your normal method here

您也可以使用os.makedirs创建任何中间目录,但请注意,如果已存在任何目录,此方法将引发异常:

  

递归目录创建功能。像mkdir(),但所有   包含叶子目录所需的中级目录。   如果leaf目录已存在,则引发错误异常   无法创建。默认模式为0777(八进制)。在某些系统上,   模式被忽略。在使用它的地方,首先是当前的umask值   掩盖了。