用python删除指定目录下带某个字符串的图片

news2024/12/22 19:53:07

前言:

        在文件处理中,有时我们需要批量删除指定文件夹中的特定类型文件。如果文件数量非常庞大,手动删除会非常麻烦,所有可以用 Python 编写一个简单而高效的脚本,自动执行重复性的任务,从而节省时间和精力,并减少误删的风险。

        刚好近期遇到了这个问题,就写个笔记方便之后回顾吧。(代码中涉及的一些函数放在了文末介绍)

举个例子:我想要删除下面文件夹中包含有'consep'这个字符串的图片(最后三张)

 一、代码如下:
法一:
import os
path = "D:\Pytorch-UNet-master\data\imgs2-cell"  # 图片所在路径
dir = os.listdir(path)   
category = "consep"  # 要删除的那个字符串
for i in range(0,len(dir)):
    file_path = os.path.join(path,dir[i])    # 构造完整的文件路径,dir[i]是获取图片名
    if category in dir[i]:
            os.remove(file_path)
            print(f"Deleted:{file_path}")

如果想删除.jpg或者.png格式的图片,把category改成对应的.jpg或者.png就ok了。 

 法二:
import os
#自定义一个函数
def delete_image(directory,category):
    for root,dirs,files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root,file)
            if category in file_path:
                os.remove(file_path)
                print(f"{file_path} has been deleted")

#调用
path = "D:\Pytorch-UNet-master\data\imgs2-cell"
category = "consep"
delete_image(path,category)

第二种方法是自定义一个函数,然后调用来实现删除指定的图片。

参数directory指图片所在路径。

二、函数介绍。
1.os.listdir() 函数

在上述法一的代码中,os.listdir(path) 是 Python 的 os 模块中的一个文件处理函数,它可以返回指定目录下的所有文件和文件夹的名称列表。

注意:os.listdir()函数只返回当前目录下的文件和文件夹名称,不包括子目录中的内容,也就是下图data目录下显示的这些会被列出,而目录data/imgs/里面有什么不会被列出(看下图)

如图:

import os
path = 'D:\Pytorch-UNet-master\data' # 指定目录路径

file_list = os.listdir(path)
for file_name in file_list:
    print(file_name)


'''
输出的结果为:
            imgs
            imgs2-cell
            imgs2-cell1
            mask2-cell
            masks
            output
            output2
            output3
            Predict1-car
            Predict2
            Predict3-cell
            resize.py
            tran.py
'''
 2.os.path.join()函数

法一代码中,os.path.join()函数将当前目录的路径(path)和当前文件名(dir[i])组合成一个完整的文件路径。file_path = os.path.join(path,dir[i]),组合完之后,打印出来的file_path是文件夹imgs2-cell/下面所有图片的绝对路径了。

import os
path = "D:\Pytorch-UNet-master\data\imgs2-cell"  # 图片所在路径
dir = os.listdir(path)   
category = "consep"  
for i in range(0,len(dir)):
    file_path = os.path.join(path,dir[i]) 
    print(file_path)


'''如:D:\Pytorch-UNet-master\data\imgs2-cell\0.png
      .......
'''
3.os.walk()函数

os.walk() 是 Python 中的一个内置函数,用于遍历一个目录及其所有子目录,并为每个子目录返回一个三元组[ (root:当前目录列表),(dirs:子目录列表),(files文件列表)]。简单来说就是以此迭代,相当于一个树状结构。

如下:me下面只有两个.py文件,没有目录了,所有打印出来的dirs就为空

import os
path = "D:\Pytorch-UNet-master\me"
for root,dirs,files in os.walk(path):
    print('1:',root)
    print('2:',dirs)
    print('3:',files)


'''
print结果:
    1: D:\Pytorch-UNet-master\me
    2: []
    3: ['unet-parts2.py', '__init__.py']
'''

 结尾:到这里就结束啦,第一次写这些,如有不足指出多多包涵哈。~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1284388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

@Scheduled,Quartz,XXL-JOB三种定时任务总结

Scheduled,Quartz,XXL-JOB三种定时任务总结 一、Scheduled 简介 Scheduled 是 Spring 框架中用于声明定时任务的注解。通过使用 Scheduled 注解,你可以指定一个方法应该在何时执行,无需依赖外部的调度器。 这个注解通常与Enab…

避免20种常见Selenium自动化测试异常,让你的测试更加稳定和可靠!

常见的Selenium异常 以下是所有Selenium WebDriver代码中可能发生的一些常见Selenium异常。 1、ElementClickInterceptedException 由于以某种方式隐藏了接收到click命令的元素,因此无法正确执行Element Click命令。 2、ElementNotInteractableException 即使目…

分清社保、医保、新农合

社保中的大头是养老保险,从上图可知成都每个月最低849.2元,对于底层人民来说价格不菲,但对应的医保才107元,那么能不能只交医保呢? 分三种情况: 1、如果我们购买的是城镇职工医疗保险,公司买的也…

vivado实现分析与收敛技巧9-分析使用率统计数据

实现问题的常见原因之一是未考量显式和隐式物理约束。例如 , 管脚分配 (pinout) 在逻辑布局上变为显式物理约束。 slice( 分片 ) 逻辑在大部分器件中都是一致的。但如下专用资源表示的是隐式物理约束 , 因为这些资源仅在某些位置…

GCN,GraphSAGE 到底在训练什么呢?

根据DGL 来做的,按照DGL 实现来讲述 1. GCN Cora 训练代码: import osos.environ["DGLBACKEND"] "pytorch" import dgl import dgl.data import torch import torch.nn as nn import torch.nn.functional as F from dgl.nn.pytorc…

UVM验证环境 加入env

(1) 如何在UVM验证环境中例化reference model、scoreboard 如何在在验证平台中加入reference model、scoreboard,这个问题的解决方案是引入一个容器类,在这个容器类中实例化driver、monitor、reference model和scoreboard等。在…

Python 自动化办公:文件快速整理分类

平时桌面或文件夹内鱼龙混杂,各种类型的文件都有怎么办? 本篇文章中,我们将学习如何使用 Python 编写一个文件整理分类的脚本。 该脚本能够自动获取文件类型,并将文件按照类型整理到不同的子文件夹中。 先看下效果,…

新的 BLUFFS 攻击导致蓝牙连接不再私密

蓝牙是一种连接我们设备的低功耗无线技术,有一个新的漏洞需要解决。 中间的攻击者可以使用新的 BLUFFS 攻击轻松窥探您的通信。 法国研究中心 EURECOM 的研究员 Daniele Antonioli 演示了六种新颖的攻击,这些攻击被定义为 BLUFFS(蓝牙转发和…

渗透测试学习day4

文章目录 靶机:SequelTask1Task2Task3Task4Task5Task6Task7Task8 靶机:CrocodileTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10 靶机:ResponderTask1Task2Task3Task4Task5Task6Task7Task8Task9Task10Task11 靶机:ThreeTas…

使用百度开发者平台处理语音朗读

--TIME --百度开发者中心-汇聚、开放、助力、共赢 --注册账号 -- 准备工作 准备工作 更新时间:2023-01-13 成为开发者 三步完成账号的基本注册与认证: STEP1:点击进入控制台,选择需要使用的AI服务项。若为未登录状态&#xf…

CleanMyMac X2024破解注册激活码

CleanMyMac X for Mac中文2024版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉,节省宝贵的磁盘空间。 cleanmymac x个人认为X代表界面上的最大升级,功能方面有更多增加,与最新macOS系统更加兼容,流畅地与系统性…

MacBook Pro 安装Redis【超详细图解】

目录 一、使用brew安装Redis 二、查看安装及配置文件位置 三、启动Redis 3.1 查看redis服务进程 3.2 redis-cli连接redis服务 四、关闭Redis 因项目需要,顺便记录安装过程 一、使用brew安装Redis brew install redis 如图所示即为安装成功! 二…

csdn语法说明/csdn新手指导/csdn入门指导/csdn博文助手

文章目录 1、文章目录2、标题3、文本样式3.1、强调、加粗、黄色标记、删除、引用、乘方,化学表达式3.2、标红、按钮效果 4、功能快捷键5、注脚、注释6、链接7、图片8、列表9、表格 本篇博文主要写一下csdn博文中的语法说明。 1、文章目录 [TOC](这里写自定义目录标…

谈谈压测方案的那点事

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

论文解读:EfficientViT-提高吞吐量

摘要 要解决的问题 Vision transformers have shown great success due to their high model capabilities. However, their remarkable performance is accompanied by heavy computation costs, which makes them unsuitable for real-time applications. vit计算开销大&a…

人工智能学习7(决策树算法)

编译工具:PyCharm 文章目录 编译工具:PyCharm 决策树算法信息熵信息熵例题计算: 信息增益(决策树划分依据之一ID3)信息增益例题计算: 信息增益率(决策树划分依据之一C4.5)基尼值和基尼指数(决策树划分依据之…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及源码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及原理图 链接:https://pan.baidu.com/s/1xm8mLotLBvOULQlg76ca7g?pwdp0mx 提取码:p0mx

边缘计算网关构建智慧楼宇新生态,打造未来建筑管理

边缘计算网关在无人值守环境中的应用十分广泛,尤其在智慧楼宇管理方面发挥着重要作用。它能够实现多个地点多楼宇之间的数据实时互通,通过边缘计算网关物联网应用构建智慧楼宇生态系统,解决传统楼宇管理网络布线、人员巡检以及后期运维等问题…

SQL Server 数据库,创建数据表(使用T-SQL语句)

2.3表的基本概念 表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是 按行和列的格式组织的,每行代表一条唯一的记录,每列代表记录中的一个字段.例如,在包含公 司员工信息的表中,每行…

深度学习模型部署与优化:关键考虑与实践策略

4. 深度学习模型部署与优化:关键考虑与实践策略 4.1 FLOPS TOPS 首先,我们来解释FLOPS和TOPS的含义: FLOPS:是Floating Point Operations Per Second的缩写,意思是每秒浮点运算次数。它是衡量计算机或计算设备在每秒…