Python按照映射關系批量重命名文件
更新時間:2025年03月13日 08:43:52 作者:一晌小貪歡
這篇文章主要為大家詳細介紹了Python如何按照映射關系批量重命名文件功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
1、背景介紹
有時候我們?nèi)粘^k公的時候,經(jīng)常需要將批量文件,進行重命名,但是重命名是按照一定的規(guī)則,比如提供一個映射關系的表,如下圖:

那么我們可以Python中的shutil模塊對文件進行批量的操作,以此達到我們想要的效果
2、庫的安裝
| 庫 | 用途 | 安裝 |
|---|---|---|
| pandas | Excel讀取 | pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/ |
| os | 獲取路徑 | 內(nèi)置庫無需安裝 |
| json | 讀寫json文件 | 內(nèi)置庫無需安裝 |
3、核心代碼
①:重命名并移動文件
def rename_and_move_files(self):
if not self.source_folder or not self.rules_folder:
self.log_text.append('請確保已選擇源文件夾和規(guī)則文件夾!')
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}' 未找到,保留在文件夾【數(shù)據(jù)源】。")
self.log_text.append("文件重命名和移動操作完成!")
except Exception as e:
self.log_text.append(f"出現(xiàn)錯誤: {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"出現(xiàn)錯誤: {e}")
def main():
source_folder = select_folder('待命名數(shù)據(jù)源')
rules_folder = select_folder('命名規(guī)則')
target_folder = '修改后'
rename_and_move_files(source_folder, rules_folder, target_folder)
if __name__ == '__main__':
main()到此這篇關于Python按照映射關系批量重命名文件的文章就介紹到這了,更多相關Python重命名文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
django rest framework vue 實現(xiàn)用戶登錄詳解
這篇文章主要介紹了django rest framework vue 實現(xiàn)用戶登錄詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07
Python Pandas pandas.read_sql_query函數(shù)實例用法分析
在本篇文章里小編給大家整理的是一篇關于Python Pandas pandas.read_sql_query函數(shù)實例用法分析內(nèi)容,有興趣的朋友們可以跟著學習下。2021-06-06
python查找特定名稱文件并按序號、文件名分行打印輸出的方法
這篇文章主要介紹了python查找特定名稱文件并按序號、文件名分行打印輸出的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

