laitimes

Python automated office: A few lines of code can automatically classify files, saying goodbye to cluttered folders

author:Artificial intelligence learns from people

在日常工作中,我们经常会遇到这样一个问题:大量的文件被随意存放在同一个文件夹中,导致文件查找变得异常困难,甚至需要花费大量时间去手动整理。这种混乱的文件夹管理方式不仅影响了工作效率,也增加了出错的可能性。

不过,现在有了Python这个强大的自动化办公工具,我们可以轻松解决这个问题。通过编写简单的Python脚本,我们可以根据文件类型自动将文件分类,让文件夹变得井井有条。

import os
import shutil


def classify_files(directory, destination_directory, config):
    """
    将目录下的文件按照配置中的后缀分类到不同的文件夹中。


    Args:
    - directory: 要分类的目录路径
    - destination_directory: 分类后文件夹的目标路径
    - config: 包含后缀、目标文件夹和操作标识的元组的配置列表
              格式为 [('后缀1', '目标文件夹1', '移动/复制'), ('后缀2', '目标文件夹2', '移动/复制'), ...]
    """
    # 遍历目录下的所有文件
    for root, dirs, files in os.walk(directory):
        for file in files:
            # 获取文件的绝对路径
            file_path = os.path.join(root, file)
            # 获取文件后缀
            _, extension = os.path.splitext(file)
            extension = extension.lower()  # 统一转换为小写


            # 在配置列表中查找后缀对应的配置项
            for ext, dest, action in config:
                if extension == ext:
                    destination_folder = os.path.join(destination_directory, dest)
                    # 如果目标文件夹不存在,则创建它
                    if not os.path.exists(destination_folder):
                        os.makedirs(destination_folder)
                    # 执行移动或复制操作
                    if action == '移动':
                        shutil.move(file_path, destination_folder)
                    elif action == '复制':
                        shutil.copy(file_path, destination_folder)


if __name__ == "__main__":
    # 配置文件后缀、目标文件夹和操作标识的元组列表
    file_extension_config = [
        ('.txt', 'TextFiles', '移动'),
        ('.jpg', 'ImageFiles', '复制'),
        ('.png', 'ImageFiles', '复制'),
        ('.jpeg', 'ImageFiles', '移动'),
        ('.mp3', 'AudioFiles', '移动'),
        ('.mp4', 'AudioFiles', '复制')
        # 可以根据需要扩展更多的后缀、目标文件夹和操作标识的元组
    ]


    # 要分类的目录路径
    source_directory = "D:\\AI\\massdir"
    # 分类后文件夹的目标路径
    destination_directory = "./path/classify"
    if not os.path.exists(destination_directory):
        os.makedirs(destination_directory)
    # 调用分类函数
    classify_files(source_directory, destination_directory, file_extension_config)           

代码运行效果

整理前

Python automated office: A few lines of code can automatically classify files, saying goodbye to cluttered folders

整理后

Python automated office: A few lines of code can automatically classify files, saying goodbye to cluttered folders
Python automated office: A few lines of code can automatically classify files, saying goodbye to cluttered folders

当然,这个脚本只是一个简单的示例,你可以根据自己的需求进行灵活配置。比如,你可以根据需要添加更多的文件类型,或者将文件移动到目标文件夹而不是复制。此外,你还可以考虑添加一些错误处理的逻辑,以处理可能出现的异常情况。

总之,通过Python自动化办公,我们可以轻松实现文件自动分类,让工作变得更加高效和有序。只需要几行简单的代码,就能告别混乱的文件夹,享受更加愉快的办公体验!

Read on