python中如何创建文件夹(以抛出异常为依据)

【时间】2018.11.15

【题目】python中如何创建文件夹(以抛出异常为依据)

概述

在python中,可以使用os.makedirs(path)创建文件夹,可是如果需要创建多个文件夹,比如你在将包含多个子文件夹中的文件复制到另一个文件夹中时,这时如果一个个创建文件夹,代码会显得很冗杂。这时可以使用抛出异常的方式来判断需要创建哪些文件夹。具体如下。

一、文件夹不存在时抛出异常

在python中,可以使用shutil.copy(filename, save_file_path)进行文件复制,而当目标文件夹不存在时,会抛出IOError异常,如下:

二、根据抛出的异常创建文件夹

在确保保存路径正确的前提下,我们可以根据抛出的异常来进行文件夹的创建。具体是根据根据抛出异常时的路径创建文件夹,具体而言可以使用os.path.dirname(save_path)获取文件的路径。最终代码如下:

【代码】

import os

import shutil

path ='C:/Users/Administrator/Desktop/test/image/'

save_path ='C:/Users/Administrator/Desktop/test/image_save/'

filenames = []

for home, dirs, files in os.walk(path):

    for filename in files:

        name = '/'.join([home, filename])

        filenames.append(name)

for filename in filenames:

    save_name = '/'.join(filename.split('/')[-1:])  #根据自己要保留的路径名选取,[-1:]表示只取文件名

    print(save_name)

    try:

        shutil.copy(filename, save_path +save_name)  # copy

    except IOError:

        subdir = os.path.dirname(save_path)

        if not os.path.exists(subdir):

            os.makedirs(subdir)

        shutil.copy(filename, save_path+save_name)  # copy

【运行结果】:

运行前:

运行后:

          

猜你喜欢

转载自blog.csdn.net/C_chuxin/article/details/84108943