基于Python实现一键自动整理桌面

 更新时间:2026年02月04日 09:47:09   作者:宇宙第一小趴菜  
这篇文章主要为大家详细介绍了如何基于Python实现一键自动整理桌面,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

前言

我这个人比较懒,总是喜欢把收到的重要文件,或者比较紧急的文件放到桌面

久而久之,桌面或者文件夹越来越乱

不知道大家是不是像我一样的

原因

  • 之所以放在桌面上,主要是为了下次使用的时候好找
  • 但是,其实,结果…并没有
  • 结果,我的马马~~
  • 反而更难找了
  • 也不知道越乱越好找这句话是谁第一个传出来的!!!

解决

  • 不过还好我会Python,直接写了一个脚本,用来整理桌面或者文件夹。
  • python脚本里的文件类型
  • 我们可以自己根据需要进行扩展

效果展示

原理

格式定义

首先,将我们要整理的文件格式进行一下分类,如下。

大家可以根据自己的实际要求,对需要格式的文件类型进行自定义。

{
	"图片资料": [".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"],
	"可执行文件": [".exe", ".msi", ".app", ".bat"],
	"网页文件": [".html", ".xml", ".mhtml", ".css", ".js"],
	"快捷方式": [".lnk"],
	"字体文件": [".ttf", ".otf", ".woff", ".woff2"],
	"数据库文件": [".db", ".sql", ".sqlite"],
	"虚拟机文件": [".vmdk", ".vdi", ".iso"],
	"系统文件": [".dll", ".sys", ".ini", ".cfg"],
	"日志文件": [".log"]
}

遍历要整理的文件夹

# 定义要整理的文件夹
orginizePath='D:\\direct'
print(os.scandir(orginizePath))
 
# 循环整理的文件夹
# 完整源码自取裙 592539176
for myfile in os.scandir(orginizePath):
    # 跳过文件夹
    if myfile.is_dir():
        print('%s是文件夹'%myfile)
        continue
    # 输出文件的名
    print(myfile.name)

整理文件夹

通过,我们定义的格式类型,创建相应的文件夹。

例如:定义的图片资料类型。

"图片资料":[".jpg",".jpeg",".bpm",'.png','.gif']

如果检测到用包含的.jpg 等格式的文件,我们就创建一个 图片资料文件夹。

然后将文件夹中的 .jpg格式的文件,移动到 图片资料文件夹中。

#找到要整理的文件路径
file_path=Path(orginizePath+'\\'+myfile.name)
lower_file_path=file_path.suffix.lo                                                                                                                                                                                                          wer()
#循环遍历我们定义的格式类型
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文件位置

整理效果如下

直接将脚本中的文件路径,改成你要整理的路径即可。

加界面的完整代码

现在就方便大家使用了

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"],
    "可执行文件": [".exe", ".msi"],
    "网页文件": [".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)

# 创建主窗口
root = tk.Tk()
root.title("文件整理工具")
root.geometry("400x200")  # 设置窗口大小
root.resizable(False, False)  # 禁止改变窗口大小
root.configure(bg="#f0f0f0")  # 设置背景颜色

# 创建标题标签
title_label = tk.Label(root, text="文件整理工具", font=("楷体", 16), bg="#f0f0f0")
title_label.pack(pady=20)

# 创建选择文件夹按钮
select_button = tk.Button(root, text="选择要整理的文件夹", command=select_folder)
select_button.pack(pady=10)

# 创建退出按钮
exit_button = tk.Button(root, text="退出", command=root.quit)
exit_button.pack(pady=10)

# 启动主循环
root.mainloop()

以上就是基于Python实现一键自动整理桌面的详细内容,更多关于Python桌面整理的资料请关注脚本之家其它相关文章!

相关文章

  • 仅利用30行Python代码来展示X算法

    仅利用30行Python代码来展示X算法

    这篇文章主要介绍了仅利用30行Python代码来展示X算法,同时还有对算法实现的复杂度的说明,需要的朋友可以参考下
    2015-04-04
  • Python在同步方法中执行协程方法的实现

    Python在同步方法中执行协程方法的实现

    Python同步方法无法直接执行协程,因其返回协程对象需事件循环调度,五种解决方案涵盖不同场景:asyncio.run()适用于脚本,loop.run()需显式控制,nest_asyncio解决嵌套问题但不推荐生产,线程安全方法用于框架内任务,线程池运行协程为通用推荐方案
    2025-09-09
  • Python3 pandas 操作列表实例详解

    Python3 pandas 操作列表实例详解

    这篇文章主要介绍了Python3 pandas 操作列表实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python制作简易注册登录系统

    Python制作简易注册登录系统

    这篇文章主要为大家详细介绍了Python简易注册登录系统的制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Python爬虫使用浏览器cookies:browsercookie过程解析

    Python爬虫使用浏览器cookies:browsercookie过程解析

    这篇文章主要介绍了Python爬虫使用浏览器cookies:browsercookie,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • pandas解决空列表问题

    pandas解决空列表问题

    本文主要介绍了Python的pandas库中高效处理空列表的问题,包括识别、过滤、替换和聚合操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • 用pip给python安装matplotlib库的详细教程

    用pip给python安装matplotlib库的详细教程

    这篇文章主要介绍了用pip给python安装matplotlib库的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • pytorch.range()和pytorch.arange()的区别及说明

    pytorch.range()和pytorch.arange()的区别及说明

    这篇文章主要介绍了pytorch.range()和pytorch.arange()的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • pyqt5自定义信号实例解析

    pyqt5自定义信号实例解析

    这篇文章主要介绍了pyqt5自定义信号实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 在Python的Tornado框架中实现简单的在线代理的教程

    在Python的Tornado框架中实现简单的在线代理的教程

    这篇文章主要介绍了在Python的Tornado框架中实现简单的在线代理的教程,代理功能是一个常见的网络编程实现,需要的朋友可以参考下
    2015-05-05

最新评论