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

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

原理
格式定義
首先,將我們要整理的文件格式進(jìn)行一下分類,如下。
大家可以根據(jù)自己的實(shí)際要求,對需要格式的文件類型進(jìn)行自定義。
{
"圖片資料": [".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"],
"虛擬機(jī)文件": [".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)建一個(gè) 圖片資料文件夾。
然后將文件夾中的 .jpg格式的文件,移動(dòng)到 圖片資料文件夾中。
#找到要整理的文件路徑
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('文件整理已完成!')
腳本運(yùn)行方法
直接,使用Python + 腳本運(yùn)行即可。
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)建標(biāo)題標(biāo)簽
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)
# 啟動(dòng)主循環(huán)
root.mainloop()
以上就是基于Python實(shí)現(xiàn)一鍵自動(dòng)整理桌面的詳細(xì)內(nèi)容,更多關(guān)于Python桌面整理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在Python中測試訪問同一數(shù)據(jù)的競爭條件的方法
這篇文章主要介紹了在Python中測試訪問同一數(shù)據(jù)的競爭條件的方法,探究多線程或多進(jìn)程情況下優(yōu)先訪問權(quán)的問題,需要的朋友可以參考下2015-04-04
Python讀取Hive數(shù)據(jù)庫實(shí)現(xiàn)代碼詳解
這篇文章主要介紹了Python讀取Hive數(shù)據(jù)庫實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
PyTorch torch.unique() 基礎(chǔ)與實(shí)戰(zhàn)應(yīng)用指南
torch.unique() 是PyTorch中的一個(gè)去重函數(shù),用于返回張量中所有的唯一元素(unique elements),本文將帶你深入了解 torch.unique() 的用法、參數(shù)、返回值以及實(shí)際應(yīng)用場景,感興趣的朋友跟隨小編一起看看吧2025-10-10
手機(jī)使用python操作圖片文件(pydroid3)過程詳解
這篇文章主要介紹了手機(jī)使用python操作圖片文件(pydroid3)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
Python使用列表和字典實(shí)現(xiàn)簡單的考試系統(tǒng)詳解
這篇文章主要介紹了Python使用列表和字典實(shí)現(xiàn)簡單的考試系統(tǒng),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01
PyCharm運(yùn)行bash腳本的實(shí)現(xiàn)
本文主要介紹了PyCharm運(yùn)行bash腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
python正則表達(dá)式如何解決包含且不包含某字符串問題
文章介紹了如何使用Python正則表達(dá)式中的斷言功能來匹配不包含特定字符串的文本,通過零寬度正先行斷言`(?=X)`和零寬度負(fù)先行斷言`(?!X)`,可以實(shí)現(xiàn)更復(fù)雜的匹配需求,文章通過多個(gè)例子展示了如何應(yīng)用這些斷言來匹配或排除特定子字符串2026-03-03

