python下实现遍历文件夹及其子文件夹中带特殊字符的所有文件的复制

进行单一的文件进行复制到另外一个文件中去

import os, shutil
# 路径
path='E:/file'
new_path='F:/NEW_FILE'

for root ,dirs,files in os.walk(path):
    for i in range(len(files)):
        if (files[i][-3:] == 'jpg') or (files[i][-3:] == 'png')or (files[i][-3:] == 'PNG') or (files[i][-3:] == 'JPG'):
            file_path = root +'/'+files[i]
            new_file_path = new_path+'/'+files[i]
            shutil.copy(file_path,new_file_path)


 进行文件下所有的图片复制(包括子文件的复制)的复制内容

from glob import glob
import os, random
from shutil import copyfile

#文件路径
source_path=r'D:/test'
target_path=r'F:/file'
 
 
def getFileList(dir,Filelist):
    """
    获取文件夹及其子文件夹中文件列表
    输入 dir:文件夹根目录
    输入 ext: 扩展名
    返回: 文件路径列表
    """
    newDir = dir
    if os.path.isfile(dir):
        if dir.endswith(".jpg") or dir.endswith(".JPG") or dir.endswith(".png") or dir.endswith(".PNG"):#图片格式,自己设置
            Filelist.append(dir)
    
    elif os.path.isdir(dir):
        for s in os.listdir(dir):
            newDir=os.path.join(dir,s)
            getFileList(newDir, Filelist)
 
    return Filelist
 
def copyFile(imageList1, target_path):
 
    #os.path.splitext(),返回元组,为文件名称与文件后缀格式
    for item in imageList1:
            #将随机选中的jpg文件遍历复制到目标文件夹中
        tmp=os.path.basename(item)
        copyfile(item, target_path+'/'+tmp)
 
    return
 
imageList = getFileList(source_path,[])
copyFile(imageList, target_path)

 最后,针对需要复制的文件含有特殊的字符名称,进行复制

import os, shutil
from tqdm import tqdm

# 规范化绝对路径
src_dir = os.path.abspath(r"F:/defect")
dst_dir = os.path.abspath(r"E:/file")

key = 'template'  # 源文件夹中的文件包含字符key则复制到to_dir_path文件夹中

if not os.path.exists(dst_dir):
    os.makedirs(dst_dir)
# print("fistr_dir is:\t{}".format(fistr_dir))

if os.path.exists(src_dir):
    print("src_dir_path exitst")
    # root 所指的是当前正在遍历的这个文件夹的本身的地址
    # dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)
    # files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)
    for root, dirs, files in os.walk(src_dir):
        for file in tqdm(files):
            if key  in file: #判断文件名称是否有关键字 
   # 如果需要或复制的文件不含特殊字符,就改为 if key not in tqdm(files):
                src_file = os.path.join(root, file)
                shutil.copy(src_file, dst_dir)
                print(src_file)

print('congratulations!')

 

上一篇:argparse和shell交互以及在Linux下编写文件


下一篇:PCL条件滤波