【时间】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
【运行结果】:
运行前:
运行后: