当前位置: 代码网 > it编程>前端脚本>Python > Python实现批量文件自定义命名

Python实现批量文件自定义命名

2024年11月21日 Python 我要评论
背景有时候我们经常需要对某一个文件夹中的文件进行重命名修改,但是我们一个一个取修改将会非常繁琐,所以我们可以先创建一个excel,其中有两列,一列表示【源文件名】;一列表示【新文件名】a列【源文件名】

背景

有时候我们经常需要对某一个文件夹中的文件进行重命名修改,但是我们一个一个取修改将会非常繁琐,所以我们可以先创建一个excel,其中有两列,

一列表示【源文件名】;一列表示【新文件名】

a列【源文件名】如下粘贴至a列【源文件名】

b列【新文件名】自己写

项目目录

1、文件夹【数据源】:存放待改名的文件

2、文件夹【改名规则】:就是上面那张表

3、文件夹【修改后】:存放修改好的文件

库的介绍

shutil 是 python 的一个标准库模块,提供了许多高级的文件操作功能。这些功能包括复制、移动、删除以及修改文件和目录等。shutil 模块的设计目的是简化文件管理任务

库的安装

用途安装
pandas读取excelpip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/
os获取绝对路径内置库无需安装
os操作文件内置库无需安装

核心代码

新 \ 旧 文件名 映射表 读取

df = pd.read_excel(rules_folder+os.listdir(rules_folder)[0])

文件移动 \ 复制

 shutil.move(old_file_path, new_file_path)

完整代码

# -*- coding: utf-8 -*-
'''
@project :文件自定义命名 
@file    :文件重命名.py
@ide     :pycharm 
@author  :
@date    :2024/11/12 17:57 
'''

import os
import pandas as pd
import shutil

# 定义文件夹路径
source_folder = '数据源'
rules_folder = './改名规则/'
target_folder = '修改后'

# 创建目标文件夹,如果不存在
os.makedirs(target_folder, exist_ok=true)

# 读取excel文件,假设文件名为"rename_rules.xlsx"

df = pd.read_excel(rules_folder+os.listdir(rules_folder)[0])

# 遍历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)
        print(f"文件 '{old_name}' 已重命名为 '{new_name}' 并移动至文件夹【修改后】。")
    else:
        print(f"文件 '{old_name}' 未找到,保留在文件夹【数据源】。")

print("文件重命名和移动操作完成!")

进阶版(gui打包版本)

到此这篇关于python实现批量文件自定义命名的文章就介绍到这了,更多相关python文件自定义命名内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com