今天小编给大家分享一下python如何删除文件夹中具有相同后缀类型文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
使用背景
逛社区发现许多人在解决删除文件夹中非图片文件,删除文件夹中图片等问题的时候,都写了很多代码取实现这一功能,我当时就纳闷了,能几行代码解决的事,为什么要写那么多的代码?
解决下述问题
解决的问题是:删除文件夹中具有相同后缀类型文件。如删除文件夹下所有的JPG文件或者PNG文件
核心函数
str.endswith(suffix[, start[, end]])
函数用法: endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。
suffix – 该参数可以是一个字符串或者是一个元素。
start – 字符串中的开始位置。
end – 字符中结束位置。
注:返回值为bool类型
实战演练
现在文件夹中有TXT文件(后缀为.txt),CSV文件(后缀为.csv)和PNG文件(后缀为.png),需要删除PNG文件,只保留TXT和CSV文件。代码如下所示:
import os file=os.listdir(r'C:UsersFGDesktop est') for i in file: if i.endswith('.png'): os.remove(r'C:UsersFGDesktop est/'+i)#i保存的只是文件夹中的一个相对路径,绝对路径还需要加上文件夹的路径+‘/'
最后展示结果,第一张图为删除前的图片,第二张图为删除后的效果图:
注:当文件夹中需要删除的文件很多很多的时候,这几行简单的代码有奇效!
附:以下代码是删除指定目录下的jpg图片
# 删除文件夹下面的图片 #先导入所需的包 import os #指定路径 path = '/content/drive/My Drive' filenames = os.listdir(path) for filename in filenames: print(filename) #判断是否是文件而非文件夹 if(os.path.isfile(filename)): # print('it is a file') #判断文件后缀名是否是‘.jpg' if(os.path.splitext(filename)[1] == '.jpg'): #执行删除 os.remove(filename)