您好,登錄后才能下訂單哦!
今天小編給大家分享一下如何用Python制作一個C盤清理器的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
關(guān)于python的文件清理操作,實際上我們使用標準模塊os即可滿足所有的文件操作。
一般在C盤的清理過程中,我們能夠清理的文件類型主要如下:
''' '.tmp': '臨時文件', '._mp': '臨時文件_mp', '.log': '日志文件', '.gid': '臨時幫助文件', '.chk': '磁盤檢查文件', '.old': '臨時備份文件', '.xlk': 'Excel備份文件', '.bak': '臨時備份文件bak' '''
既然已經(jīng)知道了需要清理的文件類型,那實現(xiàn)思路就是將這些文件找出來后刪除掉即可。
將我們接下來代碼塊中使用到的os標準模塊直接導入到代碼塊中。
# Importing the os module. import os
現(xiàn)在可以將一些全局變量首先定義好,比如全局的系統(tǒng)操作路徑、待清理的文件后綴名等等。
# 待清理的文件后綴名稱 suffix_dict = { '.tmp': '臨時文件', '._mp': '臨時文件_mp', '.log': '日志文件', '.gid': '臨時幫助文件', '.chk': '磁盤檢查文件', '.old': '臨時備份文件', '.xlk': 'Excel備份文件', '.bak': '臨時備份文件bak' } # 用戶緩存數(shù)據(jù)類型名稱 user_profile_list = [ 'cookies', 'recent', 'Temporary Internet Files', 'Temp' ] # windows系統(tǒng)路徑文件類型 windir_list = [ 'prefetch', 'temp' ] # 系統(tǒng)驅(qū)動路徑 sys_drive = os.environ['systemdrive'] + '\\' # 用戶緩存路徑 user_profile = os.environ['userprofile'] # windows系統(tǒng)路徑 win_dir = os.environ['windir']
以上相關(guān)的C盤清理的全局變量已經(jīng)設(shè)置完成了,接下來我們創(chuàng)建一個ClaenFilesUtil的類來完成對文件清理的業(yè)務操作過程。
# This class is used to clean up files in a directory class CleanFilesUtil(): def __init__(self): """ A constructor. It is called when an object is created from a class and it allows the class to initialize the attributes of a class. """ self.del_info = {} self.del_file_paths = [] self.total_size = 0 for suffix_name, comment in suffix_dict.items(): self.del_info[suffix_name] = dict(name=comment, count=0) def scanf_files(self): """ It takes a list of files, and returns a list of lists of the lines in each file """ for roots, dirs, files in os.walk(user_profile): 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_count_message(self): """ It prints the number of messages in the inbox. """ byte = self.format_size(self.total_size) for i in self.del_info: print(self.del_info[i]["name"], "共計", self.del_info[i]["count"], "個") return byte def format_size(self, byte): """ It takes a number of bytes and returns a string with the number of bytes, kilobytes, megabytes, or gigabytes, depending on the size :param byte: The size in bytes """ try: kb = byte // 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 def remove_file_or_dir(self): """ > This function removes a file or directory """ for full_path_one in self.del_file_paths: try: if os.path.isfile(full_path_one): os.remove(full_path_one) print("文件:", full_path_one, "已移除") elif os.path.isdir(full_path_one): os.rmdir(full_path_one) print("文件夾", full_path_one, "已移除") except WindowsError: print("錯誤:", full_path_one, "不能被移除") if __name__ == "__main__": print("開始初始化C盤清理程序") clean_ = CleanFilesUtil() print('C盤清理程序初始化完成') print("開始掃描所有待清理文件路徑") clean_.scanf_files() print("完成所有待清理文件路徑掃描") print("掃描完成以下是需要待清理的文件路徑:") clean_.show_count_message() print("開始執(zhí)行C盤垃圾文件刪除") clean_.remove_file_or_dir() print("所有C盤垃圾文件已清理完成") input("輸入任意鍵關(guān)閉窗口...")
以上就是所有C盤垃圾清理的主要程序業(yè)務代碼了,但是為了將該清理工具設(shè)置成定時任務去執(zhí)行。
于是,我想到了前幾天發(fā)布的文章[python不要再使用while死循環(huán),使用定時器代替效果更佳!],可以通過定時器的方式來滿足業(yè)務要求。
除了使用代碼塊來完成定時還可以通過配置windows或其他操作系統(tǒng)的定時任務來完成定時執(zhí)行的需求。
以上就是“如何用Python制作一個C盤清理器”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。