磁盘垃圾文件清理Python,Python 清空文件
我们电脑中经常存在的垃圾文件主要是指tmp临时文件、日志文件、临时备份文件等。在系统运行期间产生。本文将使用Python自动清理这些垃圾文件,有需要的可以参考。
我们电脑中经常存在的垃圾文件主要是指tmp临时文件、日志文件、临时备份文件等。在系统运行期间产生。垃圾清理器的作用其实就是清理这些文件,不会影响我们使用产生的数据文件。如果是手动删除的话,一个一个找出来删除会比较麻烦。用python写个脚本直接启动,就大功告成了。
这个脚本实现使用的内置库是os库,其他三方插件没有实现。所以不用下载其他python模块,直接调用内置库就可以了。
导入操作系统
因为使用了界面处理,所以这里导入pyqt5的模块来实现UI界面布局。
来自PyQt5。QtGui导入*
来自PyQt5。QtCore导入*
来自PyQt5。QtWidgets导入*
导入系统
先写需要用的UI界面,或者用前面说的界面开发方法。
类文件目录(QWidget):
def __init__(self):
超级(FileDestory,self)。__init__()
self.init_ui()
def init_ui(self):
Self.setWindowTitle(电脑垃圾清理器微信官方账号:[Python集中营])
self . setwindowicon(QIcon( trash can . ico ))
self.setFixedWidth(550)
self.setFixedHeight(80)
self.process=QProgressBar()
self.process.setRange(0,5)
self.start_btn=QPushButton()
Self.start_btn.setText(开始清洗)
self . start _ BTN . clicked . connect(self . start _ BTN _ click)
hbox=QHBoxLayout()
hbox.addWidget(自我进程)
hbox.addWidget(self.start_btn)
self.thread_=WorkThread(self)
self . thread _ . finished . connect(self . finished)
self.thread_。连接(self.set_step)
self.setLayout(hbox)
def start_btn_click(自己):
self . start _ BTN . set enabled(False)
self.thread_。开始()
def完成(自身,完成):
如果完成是真的:
Self.start_btn.setText(清理完成)
self . start _ BTN . set enabled(False)
定义set_step(self,step):
self.process.setValue(步骤)
创建一个工作子线程,所有与电脑清理相关的操作都在其中执行,并与主线程分开,避免主线程直接被卡住,因为主线程主要用于处理UI相关的操作。
类工作线程(QThread):
#定义好的信号量用来把变量的变化信息传递给主线程,让主线程知道运行结果。
#子线程是否执行完成的信号变量。
finished=pyqtSignal(布尔值)
#子线程特定步进信号变量
exec_step=pyqtSignal(int)
def __init__(self,parent=None):
子线程类的初始化函数
:param parent: UI接口类对象
超级(工作)
ad, self).__init__(parent)
self.working = True
self.parent = parent
def __del__(self):
线程执行是否需要进入等待过程
:return:
self.working = False
self.wait()
def run(self):
子线程主要执行逻辑的业务函数
:return:
file_type = {
.tmp: 临时文件,
._mp: 临时文件_mp,
.log: 日志文件,
.gid: 临时帮助文件,
.chk: 磁盘检查文件,
.old: 临时备份文件,
.xlk: Excel备份文件,
.bak: 临时备份文件bak
}
user_pro = os.environ[userprofile]
def del_file_and_dir(root):
try:
if os.path.isfile(root):
os.remove(root)
print("文件", root, "已经被移除!")
elif os.path.isdir(root):
os.rmdir(root)
print("文件夹", root, "已经被移除!")
except WindowsError:
print("该文件", root, "不能被移除!")
def init_size(b):
try:
kb = b // 1024
except:
print("传入字节格式不对")
return "Error"
if kb > 1024:
M = kb // 1024
if M > 1024:
G = M // 1024
return "%dG" % G
else:
return "%dM" % M
else:
return "%dkb" % kb
class Clean(object):
def __init__(self):
self.del_info = {}
self.del_file_paths = []
self.total_size = 0
for i, j in file_type.items():
self.del_info[i] = dict(name=j, count=0)
def count_files(self):
for roots, dirs, files in os.walk(user_pro):
for files_item in files:
file_extension = os.path.splitext(files_item)[1]
if file_extension in self.del_info:
file_full_path = os.path.join(roots, files_item)
self.del_file_paths.append(file_full_path)
self.del_info[file_extension][count] += 1
self.total_size += os.path.getsize(file_full_path)
def show_del_files(self):
re = init_size(self.total_size)
for i in self.del_info:
print(self.del_info[i]["name"], "共计", self.del_info[i]["count"], "个")
return re
def delete_files(self):
for path in self.del_file_paths:
print(准备处理文件路径:, path)
del_file_and_dir(path)
self.exec_step.emit(1)
clean = Clean()
self.exec_step.emit(2)
clean.count_files()
self.exec_step.emit(3)
re = clean.show_del_files()
self.exec_step.emit(4)
clean.delete_files()
self.exec_step.emit(5)
self.finished.emit(True)
将布局加入main函数主体循环中,启动整个应用。
if __name__ == __main__:app = QApplication(sys.argv)
main = FileDestory()
main.show()
sys.exit(app.exec_())
以上就是自动清理电脑垃圾文件的全部代码块了,copy 到开发工具中直接运行即可。
到此这篇关于Python实现自动清理电脑垃圾文件详解的文章就介绍到这了,更多相关Python清理垃圾文件内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。