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['新文件名']
# 構(gòu)建源文件的完整路徑
old_file_path = os.path.join(source_folder, old_name)
if os.path.isfile(old_file_path):
# 構(gòu)建新的文件路徑
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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python+OpenCV+pyQt5錄制雙目攝像頭視頻的實例
今天小編就為大家分享一篇Python+OpenCV+pyQt5錄制雙目攝像頭視頻的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)
通過閱讀表格,可以發(fā)現(xiàn)Pandas中提供了非常豐富的數(shù)據(jù)讀寫方法,下面這篇文章主要給大家介紹了關于python利用pandas庫讀取excel/csv中指定行或列數(shù)據(jù)的相關資料,需要的朋友可以參考下2022-02-02
Python腳本,標識符,變量使用,腳本語句,注釋,模塊引用詳解
這篇文章主要為大家詳細介紹了Python腳本,標識符,變量使用,腳本語句,注釋,模塊引用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
關于python與opc ua Expert endpoint連接的問題
這篇文章主要介紹了關于python與opc ua Expert endpoint連接的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02

