Python实现:对指定目录下的文件:批量添加前缀后缀、删除指定内容(附代码)

使用

运行程序,根据提示,输入需要批量重命名文件的路径;

        控制台会输出显示搜索到的文件

根据需要选择相应编号:批量添加前缀;批量添加后缀;删除指定内容

图解

根据提示,输入需要批量改名的文件路径

如下图所示:

        选择1:将在所有文件开头增加

        选择2:将在所有文件末尾增加

        选择3:将搜索所有文件,匹配你输入的内容;无论该内容是在改文件的开头、中间、末尾,都能识别到并且删除;

不小心输错了内容或者选错了功能怎么办?

        别着急,从控制台上可以看见改名前的文件名称,复制下来,再次通过本程序便可批量复原名称;不必在意误操作;

这种情形下恢复成原来的名称:只需要选择3;输入希望删除的内容'墨穹'

代码

import os


def scan_mp4_files(directory):
    mp4_files = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith('.mp4'):
                mp4_files.append(os.path.join(root, file))
    return mp4_files


def get_file_name(file_path):
    return os.path.basename(file_path)


def rename_file(file_path, new_name):
    directory = os.path.dirname(file_path)
    new_file_path = os.path.join(directory, new_name)
    os.rename(file_path, new_file_path)


def main():
    directory = input("请输入扫描路径(0 默认上次): ")
    mp4_files = scan_mp4_files(directory)

    if not mp4_files:
        print("没有找到任何MP4文件。")
        return

    print("\n找到的MP4文件:")
    for file_path in mp4_files:
        print(get_file_name(file_path))

    print("\n选择重命名操作:")
    print("1. 添加前缀")
    print("2. 添加后缀")
    print("3. 删除指定名称")
    choice = input("请输入选项: ")

    prefix = input("请输入前缀: ") if choice == '1' else ''
    suffix = input("请输入后缀: ") if choice == '2' else ''
    to_remove = input("请输入要删除的部分名称: ") if choice == '3' else ''

    for file_path in mp4_files:
        file_name = get_file_name(file_path)
        base_name, ext = os.path.splitext(file_name)  # 分割文件名和扩展名

        if choice == '1':
            new_name = prefix + base_name + ext
        elif choice == '2':
            new_name = base_name + suffix + ext
        elif choice == '3':
            if to_remove in base_name:
                new_name = base_name.replace(to_remove, '') + ext
            else:
                # 如果不符合删除条件,则跳过该文件,使用原名
                new_name = file_name
                continue  # 注意这里的continue,它会跳过下面的重命名代码块
        else:
            # 如果选择了无效的选项,则不修改文件名
            new_name = file_name
            continue  # 实际上,这里可以省略,因为下面不会执行重命名操作

        # 检查新文件名是否已存在(在同一个目录下)
        new_full_path = os.path.join(os.path.dirname(file_path), new_name)
        if new_full_path != file_path and os.path.exists(new_full_path):
            print(f"警告:新文件名 '{new_name}' 已存在,文件 '{file_name}' 重命名失败。")
        else:
            rename_file(file_path, new_name)
            print(f"文件 '{file_name}' 已重命名为: '{new_name}'")


if __name__ == "__main__":
    while (1):
        main()

结束

本代码部分由Chat-gpt完成,由本人修善后发表,不代表本人实际水平;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值