基于Python實現(xiàn)一鍵自動整理桌面
前言
我這個人比較懶,總是喜歡把收到的重要文件,或者比較緊急的文件放到桌面
久而久之,桌面或者文件夾越來越亂
不知道大家是不是像我一樣的

原因
- 之所以放在桌面上,主要是為了下次使用的時候好找
- 但是,其實,結(jié)果…并沒有
- 結(jié)果,我的馬馬~~
- 反而更難找了
- 也不知道越亂越好找這句話是誰第一個傳出來的?。?!
解決
- 不過還好我會Python,直接寫了一個腳本,用來整理桌面或者文件夾。
- python腳本里的文件類型
- 我們可以自己根據(jù)需要進行擴展
效果展示

原理
格式定義
首先,將我們要整理的文件格式進行一下分類,如下。
大家可以根據(jù)自己的實際要求,對需要格式的文件類型進行自定義。
{
"圖片資料": [".jpg", ".jpeg", ".bmp", ".png", ".gif", ".tiff", ".svg", ".webp"],
"文檔資料": [
".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md",
".odt", ".rtf", ".wps", ".csv", ".epub"
],
"視頻文件": [".mp4", ".avi", ".wmv", ".mov", ".mkv", ".flv", ".webm", ".mpeg"],
"音頻文件": [".mp3", ".wav", ".aac", ".ogg", ".flac", ".m4a", ".wma"],
"壓縮文件": [".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".xz", ".lz"],
"腳本文件": [".ps1", ".sh", ".bat", ".py", ".rb", ".php", ".js", ".html"],
"可執(zhí)行文件": [".exe", ".msi", ".app", ".bat"],
"網(wǎng)頁文件": [".html", ".xml", ".mhtml", ".css", ".js"],
"快捷方式": [".lnk"],
"字體文件": [".ttf", ".otf", ".woff", ".woff2"],
"數(shù)據(jù)庫文件": [".db", ".sql", ".sqlite"],
"虛擬機文件": [".vmdk", ".vdi", ".iso"],
"系統(tǒng)文件": [".dll", ".sys", ".ini", ".cfg"],
"日志文件": [".log"]
}
遍歷要整理的文件夾
# 定義要整理的文件夾
orginizePath='D:\\direct'
print(os.scandir(orginizePath))
# 循環(huán)整理的文件夾
# 完整源碼自取裙 592539176
for myfile in os.scandir(orginizePath):
# 跳過文件夾
if myfile.is_dir():
print('%s是文件夾'%myfile)
continue
# 輸出文件的名
print(myfile.name)
整理文件夾
通過,我們定義的格式類型,創(chuàng)建相應(yīng)的文件夾。
例如:定義的圖片資料類型。
"圖片資料":[".jpg",".jpeg",".bpm",'.png','.gif']
如果檢測到用包含的.jpg 等格式的文件,我們就創(chuàng)建一個 圖片資料文件夾。
然后將文件夾中的 .jpg格式的文件,移動到 圖片資料文件夾中。
#找到要整理的文件路徑
file_path=Path(orginizePath+'\\'+myfile.name)
lower_file_path=file_path.suffix.lo wer()
#循環(huán)遍歷我們定義的格式類型
for geshi in FILE_FORMATS:
if lower_file_path in FILE_FORMATS[geshi]:
directory_path=Path(orginizePath+'\\'+geshi)
directory_path.mkdir(exist_ok=True)
file_path.rename(directory_path.joinpath(myfile.name))
print('文件整理已完成!')
腳本運行方法
直接,使用Python + 腳本運行即可。
python py文件位置
整理效果如下
直接將腳本中的文件路徑,改成你要整理的路徑即可。

加界面的完整代碼

現(xiàn)在就方便大家使用了
import os
from pathlib import Path
import tkinter as tk
from tkinter import filedialog, messagebox
# 定義不同類型的文件格式
FILE_FORMATS = {
"圖片資料": [".jpg", ".jpeg", ".bmp", ".png", ".gif"],
"文檔資料": [".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", "file_formats.txt.txt", ".md"],
"視頻文件": [".mp4", ".avi", ".wmv"],
"音頻文件": [".mp3"],
"壓縮文件": [".rar", ".zip", ".tar", ".gz", ".7z", ".bz2"],
"腳本文件": [".ps1", ".sh", ".bat", ".py"],
"可執(zhí)行文件": [".exe", ".msi"],
"網(wǎng)頁文件": [".html", ".xml", ".mhtml"],
"快捷方式": [".lnk"],
}
def organize_files(folder_path):
for myfile in os.scandir(folder_path):
if myfile.is_dir():
continue
file_path = Path(folder_path) / myfile.name
lower_file_path = file_path.suffix.lower()
for geshi in FILE_FORMATS:
if lower_file_path in FILE_FORMATS[geshi]:
directory_path = Path(folder_path) / geshi
directory_path.mkdir(exist_ok=True)
file_path.rename(directory_path / myfile.name)
break
messagebox.showinfo("完成", "文件整理已完成!")
def select_folder():
folder_path = filedialog.askdirectory()
if folder_path:
organize_files(folder_path)
# 創(chuàng)建主窗口
root = tk.Tk()
root.title("文件整理工具")
root.geometry("400x200") # 設(shè)置窗口大小
root.resizable(False, False) # 禁止改變窗口大小
root.configure(bg="#f0f0f0") # 設(shè)置背景顏色
# 創(chuàng)建標題標簽
title_label = tk.Label(root, text="文件整理工具", font=("楷體", 16), bg="#f0f0f0")
title_label.pack(pady=20)
# 創(chuàng)建選擇文件夾按鈕
select_button = tk.Button(root, text="選擇要整理的文件夾", command=select_folder)
select_button.pack(pady=10)
# 創(chuàng)建退出按鈕
exit_button = tk.Button(root, text="退出", command=root.quit)
exit_button.pack(pady=10)
# 啟動主循環(huán)
root.mainloop()
以上就是基于Python實現(xiàn)一鍵自動整理桌面的詳細內(nèi)容,更多關(guān)于Python桌面整理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python在同步方法中執(zhí)行協(xié)程方法的實現(xiàn)
Python同步方法無法直接執(zhí)行協(xié)程,因其返回協(xié)程對象需事件循環(huán)調(diào)度,五種解決方案涵蓋不同場景:asyncio.run()適用于腳本,loop.run()需顯式控制,nest_asyncio解決嵌套問題但不推薦生產(chǎn),線程安全方法用于框架內(nèi)任務(wù),線程池運行協(xié)程為通用推薦方案2025-09-09
Python爬蟲使用瀏覽器cookies:browsercookie過程解析
這篇文章主要介紹了Python爬蟲使用瀏覽器cookies:browsercookie,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2019-10-10
pytorch.range()和pytorch.arange()的區(qū)別及說明
這篇文章主要介紹了pytorch.range()和pytorch.arange()的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
在Python的Tornado框架中實現(xiàn)簡單的在線代理的教程
這篇文章主要介紹了在Python的Tornado框架中實現(xiàn)簡單的在線代理的教程,代理功能是一個常見的網(wǎng)絡(luò)編程實現(xiàn),需要的朋友可以參考下2015-05-05

