Python教程

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

本文主要是介绍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!')

 

这篇关于python下实现遍历文件夹及其子文件夹中带特殊字符的所有文件的复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!