前言
- 我这个人比较懒,总是喜欢把收到的重要文件,或者比较紧急的文件放到桌面
- 久而久之,桌面或者文件夹越来越乱
- 不知道大家是不是像我一样的
- 我滴妈呀,看着就很崩溃!
原因
- 之所以放在桌面上,主要是为了下次使用的时候好找
- 但是,其实,结果…并没有
- 结果,我的马马~~
- 反而更难找了
- 也不知道越乱越好找这句话是谁第一个传出来的!!!
解决
- 不过还好我会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()