【数据集处理】Python 将图片名字中含有某一字符串的图片存到指定文件夹下

目的:

某一个文件下存放的是各种各样所有的图片,希望把这些图片进行分类。比如:将图片名字中含有绝缘子自爆的图片放在绝缘子自爆的文件夹下。将图片名字中含有树枝的图片放在树枝的文件夹下。

一、将含有某一个特定字符串的图片的完整名字存放在一个.txt文本下

"""
打开图片文件夹,获取文件夹中图片的名字,如果图片名字中包含某个字符串,把这个图片的完整名字存在一个.txt文本中
参考:https://blog.csdn.net/zhangxiangweide/article/details/78857997
修改两处绝缘子自爆,注意自己在相应位置 建立文件夹
"""
# -*- coding:utf-8 -*-
import os #os:操作系统相关的信息模块
#存放原始图片地址
data_base_dir = "/home/dlut/网络/make_database/全部巡视缺陷图片/"#含所有图片的文件
file_list = [] #建立列表,用于保存图片信息
#读取图片文件,并将图片地址、图片名和标签写到txt文件中
write_file_name = '/home/dlut/网络/make_database/缺陷图片分类/绝缘子自爆.txt'  #自己手动创建一个.txt文本
write_file = open(write_file_name, "w") #以只写方式打开write_file_name文件
for file in os.listdir(data_base_dir): #file为current_dir当前目录下图片名
    if file.find("绝缘子自爆")>0:  #需要找带有什么名字的字符串
       """
         find函数:如果包含子字符串返回开始的索引值,否则返回-1。所以我用了一个判断语句,判断是否大于0,大于0,说明包含这个字符串,保存名字。
         如果不写大于0,不论是否包含绝缘子这几个字,都会把图片保存下来。
         if语句 0为false 其他数字均为true
       """
       write_name = file #图片路径 + 图片名 + 标签
       file_list.append(write_name) #将write_name添加到file_list列表最后
number_of_lines = len(file_list) #列表中元素个数
for current_line in range(number_of_lines):
    write_file.write(file_list[current_line] + '\n')
write_file.close()

结果:(截图未截全)
在这里插入图片描述

二、将txt文件中的名字的图片存在另一个自己新建的文件夹下,同时在原文件夹下删除这些图片

##########################某一个txt文本中的数字存的是图片的名字,要把这些名字的图片保存到另一个文件夹中,同时删除了原文件下的这些图片(可以自己选择不删除os.remove)########################
#修改两处,注意自己建立文件
from PIL import Image
import os
f3 = open("/home/dlut/网络/make_database/缺陷图片分类/绝缘子自爆.txt",'r') #test文件所在路径
for line2 in f3.readlines():
    line3=line2[:-5] #读取每行去掉后四位的数
    im = Image.open('/home/dlut/网络/make_database/全部巡视缺陷图片/{}.JPG'.format(line3))#打开改路径下的line3记录的的文件名
    im.save('/home/dlut/网络/make_database/缺陷图片分类/绝缘子自爆/{}.JPG'.format(line3)) #把文件夹中指定的文件名称的图片另存到该路径下
    #注意!!!!!!!下面这句话是删除原文件下含有这些名字的图片,也可以选择不删除,那就删掉下面那句话
    os.remove('/home/dlut/网络/make_database/全部巡视缺陷图片/{}.JPG'.format(line3)) #删除原来文件夹下名字包括绝缘子自爆的图片
f3.close()

结果:(截图未截全)
在这里插入图片描述

参考:
https://blog.csdn.net/zhangxiangweide/article/details/78857997
https://blog.csdn.net/qq_39418067/article/details/89048165
https://blog.csdn.net/yongwan5637/article/details/80622009
https://blog.csdn.net/weixin_43384257/article/details/98374743

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值