首页 > 文章列表 > Python如何在文件夹中删除具有相同后缀的文件?

Python如何在文件夹中删除具有相同后缀的文件?

Python
496 2023-04-27

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:\Users\ZFG\Desktop\test')

for i in file:

    if i.endswith('.png'):

        os.remove(r'C:\Users\ZFG\Desktop\test/'+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)