ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-10-28 13:29:59  阅读:183  来源: 互联网

标签:files 中带 python 文件夹 file path os dir


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

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!')

 

标签:files,中带,python,文件夹,file,path,os,dir
来源: https://blog.csdn.net/qq_41206687/article/details/121012303

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有