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

前言:

        在文件处理中,有时我们需要批量删除指定文件夹中的特定类型文件。如果文件数量非常庞大,手动删除会非常麻烦,所有可以用 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']
'''

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Intellij idea 快速定位到文件的开头或者结尾的几种方式

方式一:Scroll To Top / Scroll To Bottom 首先打开Keymap设置,并搜索Scroll To 依次点击File->Settings->Keymap可打开该界面 对于Scroll To Top 快速滑动定位到文件顶部, Scroll To Bottom快速定位到文件底部 默认是没有设置快捷键的…

Python应用利器:缓存妙用,让你的程序更出色更快速!

更多资料获取 📚 个人网站:ipengtao.com 在 Python 应用程序中,使用缓存能够显著提高性能并降低资源消耗。本文将详细介绍如何在 Python 中实现缓存机制,包括内置 functools 模块提供的 lru_cache 装饰器以及自定义缓存机制。 使…

FacetWP Hierarchy Select网站内容层次结构选择插件

点击阅读FacetWP Hierarchy Select网站内容层次结构选择插件原文 FacetWP Hierarchy Select网站内容层次结构选择插件可让您基于分层分类法创建引导下拉菜单。 FacetWP Hierarchy Select网站内容层次结构选择插件功能 通过引导式下拉菜单过滤结果,一次一个深度级…

用python写一个简单的爬虫

爬虫是一种自动化程序,用于从互联网上获取数据。它能够模拟人类浏览网页的行为,访问网页并提取所需的信息。爬虫在很多领域都有广泛的应用,例如数据采集、信息监控、搜索引擎索引等。 下面是一个使用Python编写的简单爬虫示例: …

2023/11/30JAVAweb学习(postman,各种参数,统一响应数据,三层架构,分层解耦,bean组件扫描,Bean注入及解决方式)

数组json形式 想切换实现类,只需要只在你需要的类上添加 Component 如果在同一层,可以更改扫描范围,但是不推荐这种方法 注入时存在多个同类型bean解决方式

SQL手工注入漏洞测试(PostgreSQL数据库)-墨者

———靶场专栏——— 声明:文章由作者weoptions学习或练习过程中的步骤及思路,非正式答案,仅供学习和参考。 靶场背景: 来源: 墨者学院 简介: 安全工程师"墨者"最近在练习SQL手工注入漏洞&#…

[SHCTF 2023]——week1-week3 Web方向详细Writeup

Week1 babyRCE 源码如下 <?php$rce $_GET[rce]; if (isset($rce)) {if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\|\%|\>|\<|\|\"/i", $rce)) {system($rce);}else {echo "hhhhhhacker!!!".&…

医院信息化专业人员必备医院业务运作及管理流程知识(详细)

业务流程是一家医院运作的基础,医院所有业务都需要流程加以驱动。熟知医院各项业务,了解医院管理流程,有利于医院工作人员更好地投入自身岗位,提高工作效率。本文整理了常见医院业务运作及管理流程,仅供参考! 【门诊业务】 一、门诊业务的特点: 1.接诊病人多,就诊时…

全网最新最全的自动化测试教程:python+pytest接口自动化-requests发送post请求

简介 在HTTP协议中&#xff0c;与get请求把请求参数直接放在url中不同&#xff0c;post请求的请求数据需通过消息主体(request body)中传递。 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式&#xff0c;所以其请求数据可以有不同的编码方式&#xff0c;服务…

Linux下快速创建大文件的4种方法

1、使用 dd 命令创建大文件 dd 命令用于复制和转换文件&#xff0c;它最常见的用途是创建实时 Linux USB。dd 命令是实际写入硬盘&#xff0c;文件产生的速度取决于硬盘的读写速度&#xff0c;根据文件的大小&#xff0c;该命令将需要一些时间才能完成。 假设我们要创建一个名…

记录华为云服务器(Linux 可视化 宝塔面板)-- Nginx配置出现500错误记录

文章目录 1、路由配置&#xff0c;访问显示500如有启发&#xff0c;可点赞收藏哟~ 1、路由配置&#xff0c;访问显示500 错误如图显示500 解决思路如下 1、先查看错误日志 错误日志存放位置 提示 /login配置的文件有问题 开始配置如下图 修改前 修改后&#xff08;即在/l…

自动化集成有哪些典型应用场景?

为什么要做自动化场景集成&#xff1f; 主要分为以下几点&#xff1a; 提高效率/减少错误&#xff1a;减少人工操作、人为错误、人力成本&#xff0c;提高生产效率、生产质量和稳定性。 提高可靠性&#xff1a;提高系统的可靠性和稳定性&#xff0c;减少系统故障和停机时间。…

【以太网物理层】DM9161A

&#x1f6a9; WRITE IN FRONT &#x1f6a9; &#x1f50e; 介绍&#xff1a;"謓泽"正在路上朝着"攻城狮"方向"前进四" &#x1f50e;&#x1f3c5; 荣誉&#xff1a;2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大…

自定义 el-select 和 el-input 样式

文章目录 需求分析el-select 样式input 样式 需求 自定义 选择框的下拉框的样式和输入框 分析 el-select 样式 .select_box{// 默认placeholder:deep .el-input__inner::placeholder {font-size: 14px;font-weight: 500;color: #3E534F;}// 默认框状态样式更改:deep .el-inp…

12.4c++中的继承

#include <iostream>using namespace std;class Sofa { private:string way;int *score; public:Sofa(){}//有参构造函数Sofa(string way,int score):way(way),score(new int(score)){cout << "Sofa::有参构造函数" << endl;}//拷贝构造函数Sofa(c…

SSM项目实战-POJO设计

1、schedule_db.sql CREATE DATABASE schedule_db CHARACTER SET utf8 ;USE schedule_db;CREATE TABLE sys_schedule (sid int NOT NULL AUTO_INCREMENT COMMENT 日程id,uid int DEFAULT NULL COMMENT 用户id,title varchar(50) DEFAULT NULL COMMENT 标题,completed int DEFAU…

hs_err_pid.log 分析工具 CrashAnalysis

GitHub - xpbob/CrashAnalysis java -jar CrashAnalysis-1.0-SNAPSHOT.jar hs_err_pid1817966.log

前缀和例题:子矩阵的和AcWing796-Java版

//前缀和模板提,在读入数据的时候就可以先算好前缀和的大小 //计算前缀的时候用:g[i][j] g[i][j-1] g[i-1][j] - g[i-1][j-1] Integer.parseInt(init[j-1]); //计算结果的时候用:g[x2][y2] - g[x1 - 1][y2]- g[x2][y1-1] g[x1 -1][y1 - 1] "\n" //一些重复加的地…

Web APIs—介绍、获取DOM对象、操作元素内容、综合案例—年会抽奖案例、操作元素属性、间歇函数、综合案例—轮播图定时器版

版本说明 当前版本号[20231204]。 版本修改说明20231204初版 目录 文章目录 版本说明目录复习变量声明 Web APIs - 第1天笔记介绍概念DOM 树DOM 节点document 获取DOM对象案例— 控制台依次输出3个li的DOM对象 操作元素内容综合案例——年会抽奖案例操作元素属性常用属性修改…

12月4日作业

完成沙发床的多继承 #include <iostream>using namespace std;class Sofa { private:string sit;int *price; public:Sofa() {cout << "Sofa::无参构造函数" << endl;}Sofa(string sit,int price):sit(sit),price((new int(price))){cout <<…