利用Python遍历文件夹下的文件并自动分类

利用Python遍历文件夹下的文件并自动分类可以通过以下步骤实现:

  1. 遍历文件夹:使用os模块中的os.walk函数来遍历文件夹下的所有文件。
  2. 分类文件:根据文件扩展名将文件分类并移动到对应的文件夹。
  3. 创建分类文件夹:如果分类文件夹不存在,则创建它们。
  4. 移动文件:使用shutil模块中的shutil.move函数将文件移动到相应的分类文件夹中。

下面是一个示例代码,可以帮助你实现文件分类:

import os
import shutil

def classify_files(source_folder):
    # 定义文件类型和对应的文件夹
    file_types = {
        'images': ['.jpg', '.jpeg', '.png', '.gif', '.bmp'],
        'documents': ['.pdf', '.doc', '.docx', '.txt', '.xls', '.xlsx'],
        'audio': ['.mp3', '.wav', '.aac'],
        'video': ['.mp4', '.avi', '.mov', '.mkv'],
        'archives': ['.zip', '.rar', '.tar', '.gz'],
        'scripts': ['.py', '.js', '.html', '.css']
    }
    
    # 创建文件夹
    for folder in file_types.keys():
        folder_path = os.path.join(source_folder, folder)
        if not os.path.exists(folder_path):
            os.makedirs(folder_path)

    # 遍历文件夹
    for root, dirs, files in os.walk(source_folder):
        for file in files:
            file_path = os.path.join(root, file)
            file_ext = os.path.splitext(file)[1].lower()
            
            # 避免移动已分类的文件
            if root == source_folder:
                moved = False
                for folder, extensions in file_types.items():
                    if file_ext in extensions:
                        target_path = os.path.join(source_folder, folder, file)
                        shutil.move(file_path, target_path)
                        moved = True
                        break
                # 如果文件类型不在已定义的类型中,则移动到'others'文件夹
                if not moved:
                    others_folder = os.path.join(source_folder, 'others')
                    if not os.path.exists(others_folder):
                        os.makedirs(others_folder)
                    shutil.move(file_path, os.path.join(others_folder, file))

if __name__ == "__main__":
    source_folder = "path/to/your/folder"  # 替换为你的文件夹路径
    classify_files(source_folder)

解释代码

  1. 定义文件类型和对应的文件夹:使用字典定义不同文件类型的扩展名及其对应的目标文件夹。
  2. 创建文件夹:遍历字典,检查并创建目标文件夹。
  3. 遍历文件夹:使用os.walk遍历源文件夹中的所有文件。
  4. 分类文件并移动:根据文件扩展名将文件移动到相应的文件夹。如果文件类型未定义,则移动到“others”文件夹中。

使用说明

  • source_folder变量替换为你想要分类的文件夹路径。
  • 运行脚本,脚本会自动根据文件扩展名创建对应的文件夹,并将文件移动到相应的文件夹中。

这个脚本可以根据需要进行扩展和修改,例如添加更多文件类型或处理子文件夹中的文件。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值