使用python 对特定文件后缀名进行查找和删除

使用python 对指定文件进行查找和删除

//有可能对于某些文件夹而言python的权限有点低读取不到
import os
import sys
import threading


class MyCliear():
    # 存储找到的垃圾文件
    __FilePaths = []
    #存储线程
    __Threads = []
    def __init__(self):
        super(MyCliear, self).__init__()
        return
    def __del__(self):
        return
    def FindFile(self,FilePath):
        #传进文件路径 然后 找到全部的路径传入 进入File里
        for i in os.listdir(FilePath):
            bufpath = FilePath + "/" + i
            #如果是文件夹
            if os.path.isdir(bufpath):
                self.FindFile(bufpath)
            #如果是文件
            if os.path.isfile(bufpath):
                self.__FilePaths.append(bufpath)
    def ThFindFirst(self,FilePath):
    #多线程 寻找
        for i in os.listdir(FilePath):
            FileName = FilePath+"/"+i
            if os.path.isdir(FileName):
                th = threading.Thread(target=self.FindFile,args=(FileName,))
                self.__Threads.append(th)
                th.start()
            elif os.path.isfile(FileName):
                self.__FilePaths.append(FileName)
        for i in self.__Threads:
            i.join()

    #返回所以文件
    def GetPaths(self):
        return self.__FilePaths

    def GetSearchPath(self,filePath):
        for i in self.__FilePaths:
            #截取最后的后缀名  如果后缀名在这个列表中 就迭代返回
            if ('.'+i.split(".")[-1])in filePath:
                yield i
        return
    def DeleteFile(self,Files):

        for i in Files:
            try:
                os.remove(i)
            except Exception as e:
                raise ("移除文件可能出错,也可能没有权限",e)
if __name__ =="__main__":
    Ffun = MyCliear()
    Ffun.ThFindFirst("E:\python3.9")
    paths = Ffun.GetPaths()
    result = Ffun.GetSearchPath([".exe",".txt"])
    for i in result:
        print(i)
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值