清除指定路径下所有文件的小工具

import tkinter
from tkinter import *
import os


path = 'C:\\Users\\1\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files'

class Clean:

    #传入window参数
    def __init__(self,init_window):
        self.mywindow = init_window

    def set_window(self):
        self.mywindow.title('清除本机缓存')

        #清除按钮
        self.clean_button = Button(self.mywindow, text='点击清除', width=10, command=self.clean_file)#设置按钮,调用clean_file方法
        self.clean_button.grid(row=1, column=1)

        self.information_text = Label(self.mywindow, text='', width=10)
        self.information_text.grid(row=2, column=1)
        
        
        #想写个递归函数,但是按钮上面事件触发貌似不能加参数,只能用这个函数再次调用有参数的函数
    def clean_file(self):
        self.clean_file2(path)



    def clean_file2(self,path):
        for i in os.listdir(path):#获取这个path里面所有文件的文件名(包含文件夹)
            file_path = os.path.join(path,i)#通过join方法将路径和文件名组合起来,变成绝对路径
            print(file_path)#打印这个文件绝对路径
            if os.path.isfile(file_path):#判断,如果是普通文件,则进行remove,如果是文件夹,那么调用递归,将二级目录传回去再次执行
                try:
                    os.remove(file_path)
                except:#有报错,直接忽略
                    pass
            else:
                self.clean_file2(file_path)#添加这句,可以删除子文件夹内容,删除这句则跳过文件夹





def new_window():
    newwindow = tkinter.Tk()#新建窗口,并通过Clean类设置窗口
    mywin = Clean(newwindow)
    mywin.set_window()

    newwindow.mainloop()#保持窗口运行


new_window()
本来想写一个删除浏览器缓存的小工具,但是发现浏览器缓存的文件夹Temporary Internet Files有莫名其妙的规则,里面还有数个文件夹,如何保存缓存文件也搞不懂,只能将工具的逻辑写成删除这个文件夹下所有的文件(包括子文件夹中的文件),途中遇到报错,提示说文件正在使用中,所以直接加报错处理,将使用中的文件直接跳过。



更新:

import tkinter
from tkinter import *
import os


path = 'C:\\Users\\1\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files'

class Clean:

    #传入window参数
    def __init__(self,init_window,path):                                             #在定义类的时候,我多传了一个path参数,修改代码中直接调
        self.mywindow = init_window                                                  #类外参数的问题,让代码更规范
        self.path = path

    def set_window(self):
        self.mywindow.title('清除本机缓存')

        #清除按钮
        self.clean_button = Button(self.mywindow, text='点击清除', width=10, command=self.clean_file)
        self.clean_button.grid(row=1, column=1)

        self.information_text = Label(self.mywindow, text='', width=10)
        self.information_text.grid(row=2, column=1)

    def clean_file(self):
        self.clean_file2(self.path)                                                   #这里传的path修改为self.path



    def clean_file2(self,path):
        for i in os.listdir(path):
            file_path = os.path.join(path,i)

            if os.path.isfile(file_path):
                try:
                    os.remove(file_path)
                    print(file_path+'         Deleting completed')
                except:
                    print(file_path + '         something wrong!')
            else:
                self.clean_file2(file_path)





def new_window():
    newwindow = tkinter.Tk()
    mywin = Clean(newwindow,path)                                                                                           #实例化类的时候多传一个path参数进去
    mywin.set_window()

    newwindow.mainloop()


new_window()


#python自学渣渣一枚

#文章内容是通过参考网上博客并自学,部分代码可能存在转载(翻阅的太多也忘记从哪转载了)

#如有侵权,请联系我,立马删除~~!

猜你喜欢

转载自blog.csdn.net/qq_16045745/article/details/80582095