经过四、步骤的一系列操作(点击跳转软件如何操作~过程非常硬核)
我们获取了包含有河流样本的与真实DOM相同大小的标签图片
但是我们的训练样本是要与真实图片放在一起进行训练的
如下图
那么我得把DOM图片从文件夹里筛选出来
由于当时我是通过arcgis软件把包含有河流样本的方格筛选出来的
而图片无法通过这个过程进行筛选
最好是通过代码来进行
幸好当时改图片名字就是考虑到了这个问题
接下来就是要挑选出与标签具有相同名称的DOM图片了
Python批量复制指定文件名称的文件到目标文件夹这部分参考这位博主的原文
真真的很有用
这里做一下简单记录
代码贴在下面了
# -*- coding: utf-8 -*-
"""
Created on Fri May 13 15:18:50 2022
@author:Laney_Midory
csdn:Laney_Midory
"""
import os
import shutil
filePath = r"C:UsersAdministratorDesktopwater_train" # 用于获取文件名称列表
old_path = r"D:toWudaDOMCGdom-114(CK0-17)0.1m" # 源文件夹
new_path = r"C:UsersAdministratorDesktopDOM" # 目标文件夹
file_list = os.listdir(filePath)
# print(file_list)
old_list = os.listdir(old_path)
for file in old_list:
if os.path.isfile(filePath+'\'+file):
for i in range(len(file_list)):
if file_list[i] in old_list:
print('源文件:"'+file_list[i]+'",绝对路径:'+old_path+'\'+file_list[i])
print('目标文件夹:'+new_path+'\'+file_list[i])
shutil.copy(old_path+'\'+file,new_path+'\'+file)
print("复制完成")
但总是报错
于是我认真看了一下代码
发现代码出现了多余的部分才导致这个问题
我的情况是一个文件夹是需要获取的文件名称
一个文件夹是源文件夹
一个文件夹是需要移动到的目标文件夹
那么其实不需要写的那么复杂
我修改后果然就不会出现上述的问题了
同时我发现copy的速度较慢
move的速度快点
要是可以的话可以改成shutil.move
完美适合我的情况
代码如下:
# -*- coding: utf-8 -*-
"""
Created on Fri May 13 16:56:50 2022
@author:Laney_Midorycsdn:Laney_Midory"""
import os
import shutil
filePath = r"C:UsersAdministratorDesktopwater_train" # 用于获取文件名称列表
old_path = r"C:UsersAdministratorDesktoppic" # 源文件夹
new_path = r"C:UsersAdministratorDesktopDOM" # 目标文件夹
file_list = os.listdir(filePath)
# print(file_list)
old_list = os.listdir(old_path)
for file in old_list:
if os.path.isfile(filePath+'\'+file):
print('源文件:"'+file+'"')
shutil.copy(old_path+'\'+file,new_path)
print("复制完成")
话说我还一直以为是图片放到硬盘里不好读取才会出现bug
把50多个G的图片拷到了桌面
等了将近一小时拷完
现在还把我的电脑弄卡了
C盘巨红
以后一定要认真看看代码
很可能需要自己修改一下
下面要做的
tif格式的图片转换成png格式由于我的标签和原图名称一样还都是tif格式
不能放在同一个文件夹里
所以得把标签转成png



