文件自动分类工具

  1. 获取当前工作目录

    • 使用Path().resolve()获取当前工作目录的绝对路径。
  2. 定义文件类型及其对应的扩展名

    • types字典存储了各种文件类型及其对应的文件扩展名列表。例如,文档类型包括.doc.docx.txt等;图像类型包括.jpg.jpeg.png等。
  3. 遍历当前目录下的所有文件

    • 使用files_in_directories.iterdir()遍历当前目录下的所有项目。
    • 使用file.is_file()检查每个项目是否为文件,同时排除.DS_Store文件。
  4. 根据文件类型创建或使用现有文件夹

    • 遍历types字典中的每种文件类型。
    • 检查文件的扩展名是否与当前类型的扩展名列表匹配。
    • 如果匹配,获取对应类型文件夹的完整路径。
    • 如果文件夹不存在,则创建它。
  5. 移动文件到相应的文件夹

    • 获取目标文件夹中文件的新路径。
    • 如果新路径的文件不存在,则将原文件移动到新位置。
    • 如果新路径的文件已经存在,则输出一条消息表示跳过此文件。

通过这种方式,脚本可以自动地将不同类型的文件组织到不同的文件夹中,从而帮助用户保持文件系统的整洁和有序。

"""
    文件自动分类工具
    - 根据文件类型自动将文件分类至相应文件夹
"""

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}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值