最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現自動清理電腦垃圾文件詳解

 更新時間:2022年03月28日 08:23:44   作者:Python?集中營  
經常存在在我們的電腦中的垃圾文件主要是指系統(tǒng)在運行過程中產生的tmp臨時文件、日志文件、臨時備份文件等。本文將利用Python實現自動清理這些垃圾文件,需要的可以參考一下

經常存在在我們的電腦中的垃圾文件主要是指系統(tǒng)在運行過程中產生的tmp臨時文件、日志文件、臨時備份文件等。垃圾清理器的作用其實也是對這些文件進行清理,不會影響到我們使用產生的數據文件。如果是手動刪除的話要一個一個的找出來去刪除就比較麻煩了,用python寫一個腳本直接啟動就大功告成了。

在這個腳本的實現過程中使用到的內置庫就是os庫,沒有通過其他的三方插件進行實現。所以也不用下載其他的python模塊,直接調用內置庫就OK了。

import os

因為我們使用界面化的處理,這里導入一下pyqt5的模塊來實現UI界面布局。

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys

先將需要使用的UI界面編寫完成,還是使用前面涉及到的界面開發(fā)的編寫方式。

class FileDestory(QWidget):
    def __init__(self):
        super(FileDestory, self).__init__()
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('電腦垃圾清理器  公眾號:[Python 集中營]')
        self.setWindowIcon(QIcon('垃圾桶.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(self.process)
        hbox.addWidget(self.start_btn)

        self.thread_ = WorkThread(self)
        self.thread_.finished.connect(self.finished)
        self.thread_.exec_step.connect(self.set_step)

        self.setLayout(hbox)

    def start_btn_click(self):
        self.start_btn.setEnabled(False)
        self.thread_.start()

    def finished(self, finished):
        if finished is True:
            self.start_btn.setText('清理已完成')
            self.start_btn.setEnabled(False)

    def set_step(self, step):
        self.process.setValue(step)

創(chuàng)建工作子線程,所有關于電腦清理的操作都放在這個子線程中去執(zhí)行,和主線程分離開來避免主線程直接卡死,因為主線程主要是用來處理UI界面相關的操作。

class WorkThread(QThread):
    # 定義好信號量用來向主線程中傳遞變量的變化信息,這樣主線程就可以知道運行結果如何。

    # 子線程是否執(zhí)行完成的信號變量
    finished = pyqtSignal(bool)

    # 子線程具體的步驟信號變量
    exec_step = pyqtSignal(int)

    def __init__(self, parent=None):
        '''
        子線程類的初始化函數
        :param parent: UI界面類對象
        '''
        super(WorkThread, self).__init__(parent)
        self.working = True
        self.parent = parent

    def __del__(self):
        '''
        線程執(zhí)行是否需要進入等待過程
        :return:
        '''
        self.working = False
        self.wait()

    def run(self):
        '''
        子線程主要執(zhí)行邏輯的業(yè)務函數
        :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("傳入字節(jié)格式不對")
                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函數主體循環(huán)中,啟動整個應用。

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = FileDestory()
    main.show()
    sys.exit(app.exec_())

以上就是自動清理電腦垃圾文件的全部代碼塊了,copy 到開發(fā)工具中直接運行即可。

到此這篇關于Python實現自動清理電腦垃圾文件詳解的文章就介紹到這了,更多相關Python清理垃圾文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于高德地圖API在Python中實現地圖功能的方法示例詳解

    基于高德地圖API在Python中實現地圖功能的方法示例詳解

    本文介紹在高德開放平臺中,申請、獲取地圖API的Key的方法,同時通過簡單的Python代碼,調取API信息,對所得Key的可用性加以驗證,感興趣的朋友一起看看吧
    2025-01-01
  • Python字典生成式、集合生成式、生成器用法實例分析

    Python字典生成式、集合生成式、生成器用法實例分析

    這篇文章主要介紹了Python字典生成式、集合生成式、生成器用法,結合實例形式分析了Python字典生成式、集合生成式、生成器相關原理、使用技巧與操作注意事項,需要的朋友可以參考下
    2020-01-01
  • 基于Python的接口自動化讀寫excel文件的方法

    基于Python的接口自動化讀寫excel文件的方法

    這篇文章主要介紹了基于Python的接口自動化讀寫excel文件,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • python3.4爬蟲demo

    python3.4爬蟲demo

    今天小編就為大家分享一篇關于python3.4爬蟲demo,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 淺談Python中os模塊及shutil模塊的常規(guī)操作

    淺談Python中os模塊及shutil模塊的常規(guī)操作

    這篇文章主要介紹了淺談Python中os模塊及shutil模塊的常規(guī)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 基于Python開發(fā)PPT圖片提取與合并工具

    基于Python開發(fā)PPT圖片提取與合并工具

    在日常工作中,我們經常需要處理PPT中的圖片,本文將介紹如何使用Python開發(fā)一個圖形界面工具,實現PPT圖片提取和九宮格合并功能,需要的可以參考下
    2024-12-12
  • pydantic-resolve嵌套數據結構生成LoaderDepend管理contextvars

    pydantic-resolve嵌套數據結構生成LoaderDepend管理contextvars

    這篇文章主要為大家介紹了pydantic-resolve解決嵌套數據結構生成LoaderDepend管理contextvars的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>
    2023-04-04
  • 使用Python簡單編寫一個股票監(jiān)控系統(tǒng)

    使用Python簡單編寫一個股票監(jiān)控系統(tǒng)

    這篇文章主要為大家詳細介紹了如何使用Python簡單編寫一個股票監(jiān)控系統(tǒng),文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • Python?中?key?參數的含義及用法小結

    Python?中?key?參數的含義及用法小結

    我們在使用?sorted()?或?map()?函數的時候,都會看到里面有一個?key?參數,其實這個?key?參數也存在于其他內置函數中(例如?min()、max()?等),那么我們今天就來了解一下?key?參數的含義以及用途吧,需要的朋友可以參考下
    2023-12-12
  • Python爬取梨視頻的示例

    Python爬取梨視頻的示例

    這篇文章主要介紹了Python爬取梨視頻的示例,幫助大家更好的利用python進行爬蟲的學習與使用,感興趣的朋友可以了解下
    2021-01-01

最新評論

三原县| 右玉县| 江津市| 高清| 调兵山市| 额尔古纳市| 荔波县| 边坝县| 保德县| 措勤县| 家居| 长武县| 湘乡市| 封丘县| 西充县| 衡东县| 肃宁县| 蓬溪县| 峡江县| 额尔古纳市| 泽普县| 武定县| 临颍县| 平顺县| 鹤峰县| 南阳市| 华亭县| 宾川县| 大冶市| 柏乡县| 修水县| 左权县| 西青区| 顺平县| 高安市| 儋州市| 安陆市| 阿坝| 昌都县| 高雄县| 漳浦县|