用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)'''
输出的结果为:imgsimgs2-cellimgs2-cell1mask2-cellmasksoutputoutput2output3Predict1-carPredict2Predict3-cellresize.pytran.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\me2: []3: ['unet-parts2.py', '__init__.py']
'''

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一起学docker系列之十八Docker可视化工具 Portainer:简介与安装

目录 前言1 简介2 安装过程2.1 创建docker容器数据卷2.2 构建运行protainer容器 3 Portainer 软件详细说明与界面导览3.1 查看本地Docker情况3.2 操作功能3.3 创建容器3.4 部署容器 4 Portainer的优势结语参考地址 前言 Docker作为容器化解决方案的热门工具,其可视…

自媒体原创改写工具,自媒体首发改写软件

自媒体平台已成为许多创作者表达观点、分享知识和积累影响力的关键渠道。创作是需要技巧和经验的。本文将分享一些自媒体文章改写技巧,并推荐一系列优秀的自媒体文章改写工具,帮助您提升创作效率,创作出更优秀的文章。 自媒体文章改写技巧 …

深度学习在工业自动化领域的简析

原创 | 文 BFT机器人 在机器视觉和工业自动化领域,很少有比“深度学习”更引人注目的词汇。大约七年前左右,这个词随着一波庞大的营销炒作而出现,附带着“革命性”和“颠覆性”等形容词。几年后,尘埃落定,深度学习在自…

联盟 | 寻鲸AI X HelpLook,智能融合助力高效创作

如今数字化转型和人工智能技术的发展已经成为全球范围内的重要趋势,越来越多企业和组织意识到数字化的重要性,并积极寻求技术和工具来提升效率、创新和竞争力。 为此,「 寻鲸AI 」与 「 HelpLook 」达成战略合作,致力于为用户提供…

Milvus 再上新!支持 Upsert、Kafka Connector、集成 Airbyte,助力高效数据流处理

Milvus 已支持 Upsert、 Kafka Connector、Airbyte! 在上周的文章中《登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?》,我们已经透露过 Milvus(Zilliz Cloud)为提高数据流处理效率, 先后支持了 Up…

12.4_黑马MybatisPlus笔记(下)

目录 11 12 thinking:关于Mybatis Plus中BaseMapper和IService? 13 ​编辑 thinking:CollUtil.isNotEmpty? 14 thinking:Collection、Collections、Collector、Collectors? thinking:groupBy&#…

重塑生成式AI时代数据战略,亚马逊云科技re:Invent大会Swami主题演讲

re:lnvent 2023 Swami Sivasubramanian主题演讲,数据、AI和人类共进共生,重塑生成式AI时代的数据战略。 赋能人才加持生成式AI必备能 生成式AI创新中心:解决生成式AI工程化挑战。 Amazon Bedrock平台PartyRock:生成式AI应用程序实…

腾讯云CODING全面支持云平台开发者生态

前言: 在技术革新迅速的当下,国内云厂商也意识到要打造拥抱开发者的云平台。如何以发展的眼光建设开发者产品与服务、或者说在软件工程领域如何演进?是值得思考的课题 正文: -----------------------云厂商向服务开发者转型---…

让业务带着问题去分析,用大数据分析工具

随着企业数字化转型进程的加快,企业大数据分析的需求也水涨船高,不少企业都在尝试上线BI大数据分析工具,让各业务人员带着业务问题去分析数据,获取解决问题的数据信息。而各高校也在搭建大数据分析教学平台,与时俱进提…

ViVo小游戏对接sdk

1.安装环境: 电脑环境:adb环境和oppo一样,npm环境和oppo一样 升级npm: npm install -g npm 清除npm缓存:npm cache clean -f 安装vivo初始化小游戏的工具: npm install -g vivo-minigame/cli 解决办法&…

http代理如何设置手机上网?http代理起到了哪些作用

本文将详细介绍如何设置手机上网使用HTTP代理,以及HTTP代理所起到的作用。 一、HTTP代理是什么? HTTP代理是一种网络协议,它允许客户端与服务器之间进行数据传输。它是一种常用的代理服务,可以帮助用户通过HTTP协议访问被封锁的网…

Ubuntu22.04 交叉编译mp4V2 for Rv1106

一、配置工具链环境 sudo vim ~/.bashrc在文件最后添加 export PATH$PATH:/opt/arm-rockchip830-linux-uclibcgnueabihf/bin 保存,重启机器 二、下载mp4v2 下载路径:MP4v2 | mp4v2 三、修改CMakeLists.txt 四、执行编译 mkdir build cd buildcmak…