Python桌面文件清理腳本分享
需求
桌面臨時文件較多時,直接刪了不太放心,不刪又顯得很雜亂,故需要寫一個腳本批量清理并備份這些雞肋的文件。
所以腳本需要具有以下功能
1. 可以將桌面文件移動至指定文件夾(可配置)。
2. 可以設(shè)置例外文件,比如桌面圖標(biāo)不需要移動,部分常用的文件也不需要移動。
3. 出現(xiàn)同名文件時,不能直接覆蓋,需要加一個日期后綴予以區(qū)分。例如更名為 helloworld-2022-08-30.txt
本來準(zhǔn)備按照文件后綴名分文件夾存放的,但畢竟是臨時文件,大概率還是需要定期刪除的,分類后反而不利于檢索。
實現(xiàn)
目錄結(jié)構(gòu)
兩個配置文件,一個主類。
代碼
ignore.ini配置需要忽略的文件名或者后綴名。
比如需要忽略圖標(biāo),可以加上.lnk;需要配置忽略文件夾temp,則在尾行加上temp即可;
location.ini配置需要備份至哪個目錄
main.py主類
import os import datetime import shutil def get_config(file_name): """ 讀取配置文件 :param file_name: 文件名 :return: 按行讀取 """ f = open(file_name) lines = [] for line in f.readlines(): line = line.strip('\n') lines.append(line) return lines def get_desktop(): """ 獲取桌面路徑 :return: 桌面絕對路徑 """ return os.path.join(os.path.expanduser("~"), 'Desktop') def get_suffix(dir_path): """ 獲取文件的后綴名 :param dir_path: 文件名 :return: 后綴名 """ return os.path.splitext(dir_path)[-1] def get_exclude_suffix(): """ 獲取不參與整理的文件后綴名 """ dirs = {} lines = get_config('ignore.ini') for line in lines: dirs.setdefault(line, 0) return dirs def get_target_path(): """ 備份至指定文件夾 :return: 目標(biāo)位置的路徑 """ return get_config('location.ini')[0] def get_source_dirs(): """ 獲取需要轉(zhuǎn)移的文件 :return: 文件目錄 """ dirs = os.listdir(get_desktop()) suffixes = get_exclude_suffix() fit_dirs = [] for dir in dirs: suffix = get_suffix(dir) if suffix not in suffixes and dir not in suffixes: fit_dirs.append(dir) return fit_dirs def get_time(): """ 獲取當(dāng)前年月日 :return: 時間 """ return datetime.datetime.now().strftime('-%Y-%m-%d') def get_rename(path): """ 文件重命名 :param path: 路徑 :return: 命名后的路徑 """ if os.path.isdir(path): return path + get_time() else: return os.path.splitext(path)[0] + get_time() + get_suffix(path) def move(): """ 移動文件 """ dirs = get_source_dirs() target_base_path = get_target_path() desk_url = get_desktop() if not os.path.exists(target_base_path): os.makedirs(target_base_path) for dir in dirs: path = os.path.join(desk_url, dir) target_path = os.path.join(target_base_path, dir) if os.path.exists(target_path): # 如果有同名文件,則加一個日期后綴 target_path = get_rename(target_path) shutil.move(path, target_path) if __name__ == '__main__': move()
直接 python main.py 執(zhí)行腳本即可
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于命令行執(zhí)行Python腳本的傳參方式
這篇文章主要介紹了關(guān)于命令行執(zhí)行Python腳本的傳參方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09pytorch?dataset實戰(zhàn)案例之讀取數(shù)據(jù)集的代碼
這篇文章主要介紹了pytorch?dataset實戰(zhàn)案例讀取數(shù)據(jù)集的相關(guān)知識,這段代碼可以作為讀取數(shù)據(jù)集的一個DataSet類的基礎(chǔ)類,可以擴充進行修改,以后有類似需要可以拿過來修改,本文結(jié)合實例代碼給大家詳細講解,需要的朋友可以參考下2022-10-10pytorch::Dataloader中的迭代器和生成器應(yīng)用詳解
這篇文章主要介紹了pytorch::Dataloader中的迭代器和生成器應(yīng)用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01OpenCV實現(xiàn)單目攝像頭對圖像目標(biāo)測距
這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)單目攝像頭對圖像目標(biāo)測距,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08對Python通過pypyodbc訪問Access數(shù)據(jù)庫的方法詳解
今天小編就為大家分享一篇對Python通過pypyodbc訪問Access數(shù)據(jù)庫的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10