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自学渣渣一枚
#文章内容是通过参考网上博客并自学,部分代码可能存在转载(翻阅的太多也忘记从哪转载了)
#如有侵权,请联系我,立马删除~~!