Python按照映射关系批量重命名文件

 更新时间:2025年03月13日 08:43:52   作者:一晌小贪欢  
这篇文章主要为大家详细介绍了Python如何按照映射关系批量重命名文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

1、背景介绍

有时候我们日常办公的时候,经常需要将批量文件,进行重命名,但是重命名是按照一定的规则,比如提供一个映射关系的表,如下图:

那么我们可以Python中的shutil模块对文件进行批量的操作,以此达到我们想要的效果

2、库的安装

用途安装
pandasExcel读取pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
os获取路径内置库无需安装
json读写json文件内置库无需安装

3、核心代码

①:重命名并移动文件

def rename_and_move_files(self):
    if not self.source_folder or not self.rules_folder:
        self.log_text.append('请确保已选择源文件夹和规则文件夹!')
        return

    try:
        excel_file = os.listdir(self.rules_folder)[0]
        df = pd.read_excel(os.path.join(self.rules_folder, excel_file))

        for index, row in df.iterrows():
            old_name = row['源文件名']
            new_name = row['新文件名']

            old_file_path = os.path.join(self.source_folder, old_name)

            if os.path.isfile(old_file_path):
                new_file_path = os.path.join(self.target_folder, new_name)
                shutil.move(old_file_path, new_file_path)
                self.log_text.append(f"文件 '{old_name}' 已重命名为 '{new_name}' 并移动至文件夹【修改后】。")
            else:
                self.log_text.append(f"文件 '{old_name}' 未找到,保留在文件夹【数据源】。")
        self.log_text.append("文件重命名和移动操作完成!")
    except Exception as e:
        self.log_text.append(f"出现错误: {e}")

4、完整代码

# -*- coding: UTF-8 -*-

import os
import pandas as pd
import shutil

def select_folder(prompt):
    folder = prompt
    if not os.path.isdir(folder):
        print(f"文件夹路径 '{folder}' 无效,请重新输入。")
        return select_folder(prompt)
    return folder

def rename_and_move_files(source_folder, rules_folder, target_folder):
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)

    try:
        # 读取Excel文件(假设只有一个Excel文件)
        excel_file = os.listdir(rules_folder)[0]
        df = pd.read_excel(os.path.join(rules_folder, excel_file))

        # 遍历Excel的每一行
        for index, row in df.iterrows():
            old_name = row['源文件名']
            new_name = row['新文件名']

            # 构建源文件的完整路径
            old_file_path = os.path.join(source_folder, old_name)

            if os.path.isfile(old_file_path):
                # 构建新的文件路径
                new_file_path = os.path.join(target_folder, new_name)

                # 移动并重命名文件
                # shutil.move(old_file_path, new_file_path)
                # 复制并重命名文件
                shutil.copy(old_file_path, new_file_path)
                print(f"文件 '{old_name}' 已重命名为 '{new_name}' 并移动至文件夹【{target_folder}】。")
            else:
                print(f"文件 '{old_name}' 未找到,保留在文件夹【{source_folder}】。")
        print("文件重命名和移动操作完成!")
    except Exception as e:
        print(f"出现错误: {e}")

def main():
    source_folder = select_folder('待命名数据源')
    rules_folder = select_folder('命名规则')
    target_folder = '修改后'

    rename_and_move_files(source_folder, rules_folder, target_folder)

if __name__ == '__main__':
    main()

到此这篇关于Python按照映射关系批量重命名文件的文章就介绍到这了,更多相关Python重命名文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中的布隆过滤器用法及原理详解

    python中的布隆过滤器用法及原理详解

    这篇文章主要介绍了python中的布隆过滤器用法及原理详解,布隆过滤器是一种概率空间高效的数据结构,它与hashmap非常相似,用于检索一个元素是否在一个集合中。它在检索元素是否存在时,能很好地取舍空间使用率与误报比例,需要的朋友可以参考下
    2023-07-07
  • Python中的异常处理详解

    Python中的异常处理详解

    这篇文章主要介绍了Python中的异常处理详解,在编写Python程序时,经常会遇到各种运行时错误,这些错误会导致程序终止并抛出异常。然而,有时我们希望程序能优雅地处理这些错误,而不是直接崩溃,这就需要用到异常处理了,需要的朋友可以参考下
    2023-07-07
  • Pytorch 卷积中的 Input Shape用法

    Pytorch 卷积中的 Input Shape用法

    这篇文章主要介绍了Pytorch 卷积中的 Input Shape用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 为什么是 Python -m

    为什么是 Python -m

    这篇文章给大家介绍了Python -m的含义及python -m 和 python 的区别解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-06-06
  • python opencv 简单阈值算法的实现

    python opencv 简单阈值算法的实现

    这篇文章主要介绍了python opencv 简单阈值算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 3行Python代码实现图像照片抠图和换底色的方法

    3行Python代码实现图像照片抠图和换底色的方法

    这篇文章主要介绍了3行Python代码实现图像照片抠图和换底色的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python从入门到实践之字典

    python从入门到实践之字典

    这篇文章主要为大家介绍了python字典,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Python基础教程之浅拷贝和深拷贝实例详解

    Python基础教程之浅拷贝和深拷贝实例详解

    这篇文章主要介绍了Python基础教程之浅拷贝和深拷贝实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • python使用Apriori算法进行关联性解析

    python使用Apriori算法进行关联性解析

    这篇文章主要为大家分享了python使用Apriori算法进行关联性的解析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 把Python列表中的元素移动到开头的三种方法

    把Python列表中的元素移动到开头的三种方法

    在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Python列表中的元素移动到开头的三种方法,需要的朋友可以参考下
    2025-08-08

最新评论