Python在指定路径下批量创建及删除文件夹
前言
博主在做深度学习时,尤其是计算机视觉方向,为了保存网络训练/测试过程中的一些输出结果,需要批量创建和删除一些文件夹,因此撰写了该博文。
一、在指定路径下创建1个文件夹
如果你只是想在某个指定路径下,创建一个指定名称的文件夹,那么直接复制下述代码,并将下述代码中的路径及文件夹名称修改为你自己的信息即可。
import os
# 前者为路径,后者为待创建的文件夹名称
dir = os.path.join(r'D:\yandandan2021\code','epoch1')
# 判断上述路径中是否已经存在目标文件夹
isExists = os.path.exists(dir)
# 如果不存在则创建,否则不做任何操作
if not isExists:
os.mkdir(dir)
上述代码的具体效果可参考下图:
二、在指定路径下创建N个文件夹
当然,既然都打算用Python来自动创建文件夹,肯定是要创建不止一个文件夹。其实,批量创建N个文件夹和创建一个文件夹的道理是一样的,只需要加一个循环,并在创建文件夹时为每个文件夹名称加上一个序号信息即可。具体代码如下:
import os
def create_dirs():
for i in range(1,6): # 这里需要注意,i取不到6,因为range()是前闭后开的,即i的取值范围为1-5。
dir = os.path.join(r'D:\yandandan2021\code','epoch_' + str(i).zfill(2))
# 前者为路径,后者为待创建文件夹的名称。注意,批量创建文件夹时不能有重复名称的,因此可以对文件夹加上序号信息。
isExists = os.path.exists(dir)
if not isExists:
os.mkdir(dir)
# 调用上述的自定义函数来批量创建文件夹
create_dirs()
上述代码的具体效果可参考下图:
三、在N个文件夹下分别创建M个子文件夹
下述代码展示了首先在指定路径下,创建5个epoch文件夹,然后再分别在5个epoch文件夹中创建10个batch文件夹的过程。
import os
def create_compound_dirs():
for i in range(1,6): # 表示创建5个epoch文件夹
dir = os.path.join(r'D:\yandandan2021\code', 'epoch_' + str(i).zfill(2))
isExists = os.path.exists(dir)
if not isExists:
os.mkdir(dir)
for j in range(1,11): # 表示分别在5个epoch文件夹下再创建10个batch文件夹
file = os.path.join(dir,'batch_'+str(j).zfill(2))
isFileExists = os.path.exists(file)
if not isFileExists:
os.mkdir(file)
create_compound_dirs()
具体效果如下:
扫描二维码关注公众号,回复:
14643958 查看本文章
四、批量删除指定文件夹中的所有文件及文件夹
下述代码实现了删除所有batch文件夹下的子文件和子文件夹。
import os
import shutil
# 删除指定文件夹下的所有文件及文件夹
def del_fils_and_dirs():
for i in range(1,6):
root = os.path.join(r'D:\yandandan2021\code', 'epoch_' + str(i).zfill(2))
for j in range(1,11):
dir = os.path.join(root,'batch_'+str(j).zfill(2))
# 代码从这里才开始删除
# 即删除dir路径下所有文件及文件夹
# 注意!文件和文件夹都会被删除掉!
for file in os.listdir(dir):
file_path = os.path.join(dir, file)
if os.path.isfile(file_path):
os.remove(file_path)
elif os.path.isdir(file_path):
shutil.rmtree(file_path)
del_fils_and_dirs()
以epoch_01文件夹下的batch_01文件夹为例,删除下,该batch文件夹下具有如下文件和文件夹:
运行如上代码后,该batch文件夹下的所有文件及文件夹都会被删除掉。
本博客至此就结束了。如果本博客对你有所帮助的话,麻烦点赞、收藏,以便下次更快地找到!