一键将文件夹内所有mp3文件提取出来

场景:

有一堆mp3音频文件杂乱无章地存放在一堆文件夹里,文件夹里可能还有文件夹,里面除了有mp3文件,还有word/pdf文档,现在想将总的文件夹及其子文件夹中的所有MP3文件提取出来,放到指定路径存储。

直接上代码,亲测有效,有问题欢迎留言!

import os
import shutil


def copy_mp3_files(source_dir, target_dir):
    """
    将源目录及其子目录中的所有MP3文件复制到目标目录
    :param source_dir: 源目录路径
    :param target_dir: 目标目录路径
    """
    # 创建目标目录(如果不存在)
    os.makedirs(target_dir, exist_ok=True)

    # 计数器统计复制的文件数量
    count = 0

    # 遍历源目录及其所有子目录
    for root, _, files in os.walk(source_dir):
        for filename in files:
            # 检查文件扩展名是否为.mp3(不区分大小写)
            if filename.lower().endswith('.mp3'):
                # 构建完整文件路径
                source_path = os.path.join(root, filename)

                # 处理目标路径中的重复文件名
                base_name, ext = os.path.splitext(filename)
                dest_path = os.path.join(target_dir, filename)
                duplicate_num = 1

                # 如果文件名存在,添加序号直到唯一
                while os.path.exists(dest_path):
                    new_name = f"{base_name}_{duplicate_num}{ext}"
                    dest_path = os.path.join(target_dir, new_name)
                    duplicate_num += 1

                # 复制文件并保留元数据
                shutil.copy2(source_path, dest_path)
                print(f"已复制:{source_path} -> {dest_path}")
                count += 1

    print(f"\n操作完成!共复制 {count} 个MP3文件。")


if __name__ == "__main__":
    # 设置源目录和目标目录(请修改为实际路径)
    SOURCE_DIRECTORY = r"H:\原文件存放"  # 替换为你的源目录
    TARGET_DIRECTORY = r"H:\整理后存放"  # 替换为目标目录

    # 执行复制操作
    copy_mp3_files(SOURCE_DIRECTORY, TARGET_DIRECTORY)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值