自己采集的电弧数据集,因为需要对数据进行切割,所以想对原来的数据集进行复制数据集的结构,因为有点多,所以想写个程序进行直接复制创建过去。
#coding=utf-8
####本文件作用是实现复制原来的数据集结构到另一个切割的文件夹下
from shutil import copy
import os
#diw 需要拷贝的文件夹,newdir是即将拷贝的地方
def copy_dir(dir,newdir):
for p in os.listdir(dir):
print(p)
filepath = newdir+'/'+p
oldpath = dir+'/'+p
if os.path.isdir(oldpath):
print('是目录')#当判定为目录,我进行创建文件及,复制他的名字
os.mkdir(filepath) #创建出新的文件夹,但是还没有改名字
copy_dir(oldpath,filepath)
copy_dir(r"G:/8月底测试数据(原版)",r"H:/Dataset(final)")
以上为源码,核心思想便是,将原来的数据集路径给定,然后进行遍历,主要利用isdir方法来判定是否是文件夹,如果是文件夹,就进行将现在遍历的名字和新给出路径进行拼接,然后利用os.mkdir方法进行创建新的文件夹。
函数定义中的最后一句,copy_dir()是为了将文件夹中嵌套文件夹的情况进行考虑进去,将他的子文件夹也采用相同的方式进行复制。
看到网上有朋友提出采用两个栈来实现分别记录文件夹下的文件的名字,然后到新的文件夹下在分别取出存储的文件的名字,感觉这样太麻烦了。后来参考这个大佬的讲解,突然明白了。
ps:python 复制指定文件夹下所有文件_zhangxiangnan0906的博客-CSDN博客_python复制文件夹下所有文件