-
获取当前工作目录:
- 使用
Path().resolve()
获取当前工作目录的绝对路径。
- 使用
-
定义文件类型及其对应的扩展名:
types
字典存储了各种文件类型及其对应的文件扩展名列表。例如,文档类型包括.doc
,.docx
,.txt
等;图像类型包括.jpg
,.jpeg
,.png
等。
-
遍历当前目录下的所有文件:
- 使用
files_in_directories.iterdir()
遍历当前目录下的所有项目。 - 使用
file.is_file()
检查每个项目是否为文件,同时排除.DS_Store
文件。
- 使用
-
根据文件类型创建或使用现有文件夹:
- 遍历
types
字典中的每种文件类型。 - 检查文件的扩展名是否与当前类型的扩展名列表匹配。
- 如果匹配,获取对应类型文件夹的完整路径。
- 如果文件夹不存在,则创建它。
- 遍历
-
移动文件到相应的文件夹:
- 获取目标文件夹中文件的新路径。
- 如果新路径的文件不存在,则将原文件移动到新位置。
- 如果新路径的文件已经存在,则输出一条消息表示跳过此文件。
通过这种方式,脚本可以自动地将不同类型的文件组织到不同的文件夹中,从而帮助用户保持文件系统的整洁和有序。
"""
文件自动分类工具
- 根据文件类型自动将文件分类至相应文件夹
"""
from pathlib import Path
# 获取当前工作目录
current_directory = Path().resolve()
# 定义文件类型及其对应的扩展名
file_types = {
"文档": ('.doc', '.docx', '.txt', '.pdf', '.xls', '.ppt', '.xlsx', '.pptx'),
"图片": ('.jpg', '.jpeg', '.png', '.svg', '.gif', '.tif', '.tiff'),
"软件": ('.exe', '.pkg', '.dmg'),
"视频": ('.mkv', '.mp4', '.3gp', '.m4v', '.avi', '.flv', '.webm'),
"音频": ('.mp3', '.ogg', '.m4a', '.wav'),
"压缩文件": ('.rar', '.zip', '.gzip')
}
# 遍历当前目录下的所有文件
for file in current_directory.iterdir():
if file.is_file() and file.name != ".DS_Store":
# 查找文件的类型
for category, extensions in file_types.items():
if file.suffix.lower() in extensions:
target_folder = current_directory / category
# 创建目标文件夹,如果还不存在的话
target_folder.mkdir(exist_ok=True)
# 构建目标文件路径
destination = target_folder / file.name
# 如果目标文件夹中不存在同名文件,则移动文件
if not destination.exists():
file.replace(destination)
print(f"正在将文件 {file.name} 移动到 {target_folder}")
else:
print(f"文件 {destination} 已存在,跳过...")
break
else:
# 如果文件不属于任何已知类型,则打印一条信息
print(f"未识别的文件类型:{file.name}")
标签:文件,扩展名,分类,文件夹,自动,file,文件类型,folder
From: https://blog.csdn.net/weixin_45339016/article/details/140245063