问题描述:E:\water pool\test1\SaveExImages\下有31个子文件夹。
每个子文件夹下都有500多张jpg图像及500多个图片对应的txt文件,txt文件都命名为如:ExImage_beam_data_183925_00301.txt的格式,每个子文件夹下的txt只有后五位不同。
要求:将每个子文件夹里后五位大于300的txt都复制到另一个指定的文件夹。
import shutil,os,re
new_path=r'C:\Users\lenovo\Desktop\groud_truth'#新文件夹路径
for derName, subfolders, filenames in os.walk(r'E:\water pool\test1\SaveExImages'):#要复制的文件夹所在的路径
#print(derName)
#print(filenames)
#print(subfolders)
for i in range(len(filenames)):
if filenames[i].endswith('.txt'):
print(filenames[i].split('_')[4].split('.')[0])#filenames[i]为文件夹下的各文件名称,如ExImage_beam_data_183925_00301.txt,split('_')[4].split('.')[0]表获取第4个"_"和"."的字符串,此处为00301
if int(filenames[i].split('_')[4].split('.')[0])>300:#int:把字符串转化为整型数字
file_path=derName+'\\'+filenames[i]
newpath=new_path+'\\'+filenames[i]
shutil.copy(file_path,newpath)