亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

一文教你利用Python制作一個(gè)C盤(pán)清理器

 更新時(shí)間:2023年03月27日 09:56:19   作者:Python?集中營(yíng)  
關(guān)于電腦的垃圾清理操作,已經(jīng)有很多的成熟的軟件可以幫助我們完成C盤(pán)的垃圾清理操作,比如360等等。但是使用三方的清理軟件往往伴隨著很多的廣告,所以本文就來(lái)用Python制作一個(gè)C盤(pán)清理器吧

關(guān)于電腦的垃圾清理操作,已經(jīng)有很多的成熟的軟件可以幫助我們完成C盤(pán)的垃圾清理操作,比如360等等。

但是使用三方的清理軟件往往伴隨著很多的廣告,而且很多離線(xiàn)情況下并不允許安裝這樣的三方軟件工具。

作為程序猿,自己動(dòng)手才能豐衣足食,于是想著何不使用python制作一個(gè)簡(jiǎn)易的C盤(pán)清理工具徹底擺脫系統(tǒng)盤(pán)日益膨脹的煩惱呢?

關(guān)于python的文件清理操作,實(shí)際上我們使用標(biāo)準(zhǔn)模塊os即可滿(mǎn)足所有的文件操作。

一般在C盤(pán)的清理過(guò)程中,我們能夠清理的文件類(lèi)型主要如下:

'''
'.tmp':?'臨時(shí)文件',
????'._mp':?'臨時(shí)文件_mp',
????'.log':?'日志文件',
????'.gid':?'臨時(shí)幫助文件',
????'.chk':?'磁盤(pán)檢查文件',
????'.old':?'臨時(shí)備份文件',
????'.xlk':?'Excel備份文件',
????'.bak':?'臨時(shí)備份文件bak'
'''

既然已經(jīng)知道了需要清理的文件類(lèi)型,那實(shí)現(xiàn)思路就是將這些文件找出來(lái)后刪除掉即可。

將我們接下來(lái)代碼塊中使用到的os標(biāo)準(zhǔn)模塊直接導(dǎo)入到代碼塊中。

#?Importing?the?os?module.
import?os

現(xiàn)在可以將一些全局變量首先定義好,比如全局的系統(tǒng)操作路徑、待清理的文件后綴名等等。

#?待清理的文件后綴名稱(chēng)
suffix_dict?=?{
????'.tmp':?'臨時(shí)文件',
????'._mp':?'臨時(shí)文件_mp',
????'.log':?'日志文件',
????'.gid':?'臨時(shí)幫助文件',
????'.chk':?'磁盤(pán)檢查文件',
????'.old':?'臨時(shí)備份文件',
????'.xlk':?'Excel備份文件',
????'.bak':?'臨時(shí)備份文件bak'
}

#?用戶(hù)緩存數(shù)據(jù)類(lèi)型名稱(chēng)
user_profile_list?=?[
????'cookies',?'recent',?'Temporary?Internet?Files',?'Temp'
]

#?windows系統(tǒng)路徑文件類(lèi)型
windir_list?=?[
????'prefetch',?'temp'
]

#?系統(tǒng)驅(qū)動(dòng)路徑
sys_drive?=?os.environ['systemdrive']?+?'\\'

#?用戶(hù)緩存路徑
user_profile?=?os.environ['userprofile']

#?windows系統(tǒng)路徑
win_dir?=?os.environ['windir']

以上相關(guān)的C盤(pán)清理的全局變量已經(jīng)設(shè)置完成了,接下來(lái)我們創(chuàng)建一個(gè)ClaenFilesUtil的類(lèi)來(lái)完成對(duì)文件清理的業(yè)務(wù)操作過(guò)程。

#?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"],?"共計(jì)",?self.del_info[i]["count"],?"個(gè)")
????????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é)格式不對(duì)")
????????????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("錯(cuò)誤:",?full_path_one,?"不能被移除")


if?__name__?==?"__main__":
????print("開(kāi)始初始化C盤(pán)清理程序")
????clean_?=?CleanFilesUtil()
????print('C盤(pán)清理程序初始化完成')
????print("開(kāi)始掃描所有待清理文件路徑")
????clean_.scanf_files()
????print("完成所有待清理文件路徑掃描")
????print("掃描完成以下是需要待清理的文件路徑:")
????clean_.show_count_message()
????print("開(kāi)始執(zhí)行C盤(pán)垃圾文件刪除")
????clean_.remove_file_or_dir()
????print("所有C盤(pán)垃圾文件已清理完成")
????input("輸入任意鍵關(guān)閉窗口...")

以上就是所有C盤(pán)垃圾清理的主要程序業(yè)務(wù)代碼了,但是為了將該清理工具設(shè)置成定時(shí)任務(wù)去執(zhí)行。

于是,我想到了前幾天發(fā)布的文章[python不要再使用while死循環(huán),使用定時(shí)器代替效果更佳!],可以通過(guò)定時(shí)器的方式來(lái)滿(mǎn)足業(yè)務(wù)要求。

除了使用代碼塊來(lái)完成定時(shí)還可以通過(guò)配置windows或其他操作系統(tǒng)的定時(shí)任務(wù)來(lái)完成定時(shí)執(zhí)行的需求。

最后,為了方便沒(méi)有python基礎(chǔ)的小伙伴可以直接使用該工具,我將其打包成了exe應(yīng)用程序。

到此這篇關(guān)于一文教你利用Python制作一個(gè)C盤(pán)清理器的文章就介紹到這了,更多相關(guān)Python C盤(pán)清理器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示

    python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示

    今天小編就為大家分享一篇python將圖片轉(zhuǎn)base64,實(shí)現(xiàn)前端顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Tornado實(shí)現(xiàn)多進(jìn)程/多線(xiàn)程的HTTP服務(wù)詳解

    Tornado實(shí)現(xiàn)多進(jìn)程/多線(xiàn)程的HTTP服務(wù)詳解

    這篇文章主要介紹了Tornado實(shí)現(xiàn)多進(jìn)程/多線(xiàn)程的HTTP服務(wù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值
    2019-07-07
  • LyScript獲取上一條與下一條匯編指令的方法詳解

    LyScript獲取上一條與下一條匯編指令的方法詳解

    LyScript 插件默認(rèn)并沒(méi)有提供上一條與下一條匯編指令的獲取功能,當(dāng)然你可以使用LyScriptTools工具包直接調(diào)用內(nèi)置命令得到,本文就為大家詳細(xì)講講如何實(shí)現(xiàn)
    2022-07-07
  • 如何徹底解決Python中matplotlib不顯示中文的問(wèn)題詳解(顯示方框)

    如何徹底解決Python中matplotlib不顯示中文的問(wèn)題詳解(顯示方框)

    Matplotlib繪制圖像顯示中文的時(shí)候,中文會(huì)變成小方格子,下面這篇文章主要給大家介紹了關(guān)于如何徹底解決Python中matplotlib不顯示中文問(wèn)題的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn)

    Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn)

    這篇文章主要介紹了Python接口自動(dòng)化測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Django drf使用Django自帶的用戶(hù)系統(tǒng)的注冊(cè)功能

    Django drf使用Django自帶的用戶(hù)系統(tǒng)的注冊(cè)功能

    本文主要介紹了Django drf使用Django自帶的用戶(hù)系統(tǒng)的注冊(cè)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 對(duì)python中的iter()函數(shù)與next()函數(shù)詳解

    對(duì)python中的iter()函數(shù)與next()函數(shù)詳解

    今天小編就為大家分享一篇對(duì)python中的iter()函數(shù)與next()函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python中threading開(kāi)啟關(guān)閉線(xiàn)程操作

    python中threading開(kāi)啟關(guān)閉線(xiàn)程操作

    這篇文章主要介紹了python中threading開(kāi)啟關(guān)閉線(xiàn)程操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python OpenCV讀取顯示視頻的方法示例

    Python OpenCV讀取顯示視頻的方法示例

    這篇文章主要介紹了 Python OpenCV讀取顯示視頻的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python中讀入二維csv格式的表格方法詳解(以元組/列表形式表示)

    python中讀入二維csv格式的表格方法詳解(以元組/列表形式表示)

    這篇文章主要介紹了python中如何讀入二維csv格式的表格(以元組/列表形式表示),本文通過(guò)兩種方法給大家詳細(xì)介紹,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論