亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python按照映射關(guān)系批量重命名文件

 更新時間:2025年03月13日 08:43:52   作者:一晌小貪歡  
這篇文章主要為大家詳細介紹了Python如何按照映射關(guān)系批量重命名文件功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1、背景介紹

有時候我們?nèi)粘^k公的時候,經(jīng)常需要將批量文件,進行重命名,但是重命名是按照一定的規(guī)則,比如提供一個映射關(guān)系的表,如下圖:

那么我們可以Python中的shutil模塊對文件進行批量的操作,以此達到我們想要的效果

2、庫的安裝

用途安裝
pandasExcel讀取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文件(假設(shè)只有一個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)
                # 復(fù)制并重命名文件
                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()

到此這篇關(guān)于Python按照映射關(guān)系批量重命名文件的文章就介紹到這了,更多相關(guān)Python重命名文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論