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!')
标签:files,中带,python,文件夹,file,path,os,dir 来源: https://blog.csdn.net/qq_41206687/article/details/121012303