最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • python中的布隆過濾器用法及原理詳解

    python中的布隆過濾器用法及原理詳解

    這篇文章主要介紹了python中的布隆過濾器用法及原理詳解,布隆過濾器是一種概率空間高效的數(shù)據(jù)結(jié)構(gòu),它與hashmap非常相似,用于檢索一個元素是否在一個集合中。它在檢索元素是否存在時,能很好地取舍空間使用率與誤報比例,需要的朋友可以參考下
    2023-07-07
  • Python中的異常處理詳解

    Python中的異常處理詳解

    這篇文章主要介紹了Python中的異常處理詳解,在編寫Python程序時,經(jīng)常會遇到各種運行時錯誤,這些錯誤會導(dǎo)致程序終止并拋出異常。然而,有時我們希望程序能優(yōu)雅地處理這些錯誤,而不是直接崩潰,這就需要用到異常處理了,需要的朋友可以參考下
    2023-07-07
  • Pytorch 卷積中的 Input Shape用法

    Pytorch 卷積中的 Input Shape用法

    這篇文章主要介紹了Pytorch 卷積中的 Input Shape用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 為什么是 Python -m

    為什么是 Python -m

    這篇文章給大家介紹了Python -m的含義及python -m 和 python 的區(qū)別解析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-06-06
  • python opencv 簡單閾值算法的實現(xiàn)

    python opencv 簡單閾值算法的實現(xiàn)

    這篇文章主要介紹了python opencv 簡單閾值算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 3行Python代碼實現(xiàn)圖像照片摳圖和換底色的方法

    3行Python代碼實現(xiàn)圖像照片摳圖和換底色的方法

    這篇文章主要介紹了3行Python代碼實現(xiàn)圖像照片摳圖和換底色的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python從入門到實踐之字典

    python從入門到實踐之字典

    這篇文章主要為大家介紹了python字典,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python基礎(chǔ)教程之淺拷貝和深拷貝實例詳解

    Python基礎(chǔ)教程之淺拷貝和深拷貝實例詳解

    這篇文章主要介紹了Python基礎(chǔ)教程之淺拷貝和深拷貝實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • python使用Apriori算法進行關(guān)聯(lián)性解析

    python使用Apriori算法進行關(guān)聯(lián)性解析

    這篇文章主要為大家分享了python使用Apriori算法進行關(guān)聯(lián)性的解析,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 把Python列表中的元素移動到開頭的三種方法

    把Python列表中的元素移動到開頭的三種方法

    在Python編程中,我們經(jīng)常需要對列表(list)進行操作,有時,我們希望將列表中的某個元素移動到最前面,使其成為第一項,本文給大家介紹了把Python列表中的元素移動到開頭的三種方法,需要的朋友可以參考下
    2025-08-08

最新評論

贵阳市| 德化县| 稷山县| 巴东县| 芒康县| 中山市| 汾阳市| 华安县| 攀枝花市| 桐庐县| 大方县| 将乐县| 庆云县| 肃南| 神池县| 龙海市| 上蔡县| 合山市| 南川市| 科技| 怀安县| 马公市| 金溪县| 青神县| 虹口区| 湘西| 禄丰县| 阿合奇县| 五家渠市| 平泉县| 资中县| 交口县| 驻马店市| 辛集市| 宁化县| 六枝特区| 内江市| 宣城市| 健康| 东乌珠穆沁旗| 邢台市|