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

Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱

 更新時(shí)間:2023年01月30日 14:09:19   作者:瘋狂學(xué)習(xí)GIS  
這篇文章主要為大家詳細(xì)介紹了如何基于Python語(yǔ)言,實(shí)現(xiàn)按照一定命名規(guī)則批量修改多個(gè)文件的文件名的效果,文中的示例代講解詳細(xì),感興趣的可以了解一下

本文介紹基于Python語(yǔ)言,按照一定命名規(guī)則批量修改多個(gè)文件的文件名的方法。

已知現(xiàn)有一個(gè)文件夾,其中包括班級(jí)所有同學(xué)上交的作業(yè)文件,每人一份;所有作業(yè)文件命名格式統(tǒng)一,都是地信1701_姓名_學(xué)習(xí)心得格式。

現(xiàn)需要對(duì)每一位同學(xué)的作業(yè)文件加以改名,有很多種需求。

第一種需求,將每一位同學(xué)作業(yè)文件名中原本是姓名的部分,都修改為學(xué)號(hào)。即原本的地信1701_姓名_學(xué)習(xí)心得修改為地信1701_學(xué)號(hào)_學(xué)習(xí)心得(每一位同學(xué)有且僅有一個(gè)學(xué)號(hào),且相互不重復(fù),且姓名與學(xué)號(hào)的對(duì)應(yīng)關(guān)系我們是已知的),如下圖所示。

第二種需求,將每一位同學(xué)作業(yè)文件名中原本姓名的部分的后面,都添加上學(xué)號(hào)。即原本的地信1701_姓名_學(xué)習(xí)心得修改為地信1701_姓名_學(xué)號(hào)_學(xué)習(xí)心得,如下圖所示。

第三種需求,將每一位同學(xué)滿足第二種需求后的作業(yè)文件名中的下劃線_部分,都修改為連接符-。即原本的地信1701_姓名_學(xué)號(hào)_學(xué)習(xí)心得修改為地信1701-姓名-學(xué)號(hào)-學(xué)習(xí)心得,如下圖所示。

好了,知道了需求我們就可以開始進(jìn)行代碼的編寫了。

首先,導(dǎo)入必要的庫(kù)。

import os
from openpyxl import load_workbook

接下來,我們首先需要讓程序知道每一位同學(xué)的姓名與學(xué)號(hào)之間的對(duì)應(yīng)關(guān)系。因?yàn)槲覀円阎彰c學(xué)號(hào)之間的關(guān)系,因此首先需要類似于下圖的表格,其中為姓名與學(xué)號(hào)的一一對(duì)應(yīng)關(guān)系。

接下來,我們需要將上述表格中的內(nèi)容在Python中以字典的格式存儲(chǔ)。具體代碼如下,關(guān)于這一部分代碼的解釋大家查看Python導(dǎo)入Excel表格數(shù)據(jù)并以字典dict格式保存即可,此處就不再贅述。

original_path='F:/學(xué)習(xí)/2020-2021-2/形勢(shì)與政策(二)/論文與學(xué)習(xí)心得/01_學(xué)習(xí)心得/地信1701-學(xué)習(xí)心得/'
look_up_table_path='F:/學(xué)習(xí)/2020-2021-2/形勢(shì)與政策(二)/論文與學(xué)習(xí)心得/01_學(xué)習(xí)心得/Name_Number.xlsx'
look_up_table_row_start=2
look_up_table_row_number=32

name_number_dict={}
look_up_table_excel=load_workbook(look_up_table_path)
look_up_table_all_sheet=look_up_table_excel.get_sheet_names()
look_up_table_sheet=look_up_table_excel.get_sheet_by_name(look_up_table_all_sheet[0])
for i in range(look_up_table_row_start,look_up_table_row_start+look_up_table_row_number):
    number=look_up_table_sheet.cell(i,1).value
    name=look_up_table_sheet.cell(i,2).value
    name_number_dict[number]=name

接下來,進(jìn)行第一種需求的代碼實(shí)現(xiàn)。

# Replacement Renaming

all_word=os.listdir(original_path)
for i in range(len(all_word)):
    old_name=all_word[i]
    old_name_name_end=old_name.rfind('_')
    old_name_name=old_name[7:old_name_name_end]
    new_name_number=[k for k, v in name_number_dict.items() if v==old_name_name]
    new_name=old_name.replace(old_name_name,''.join(str(w) for w in new_name_number))
    os.rename(original_path+old_name,original_path+new_name)

其中,由于大家的姓名有兩個(gè)字、三個(gè)字或者更多字,因此我們使用了old_name_name_end獲取原有文件名稱中姓名最后一個(gè)字所在的下標(biāo);而姓名開始的位置是確定的,即從而確定了每一位同學(xué)姓名在原有文件名中的起始與終止下標(biāo)位置。同時(shí)利用replace,依據(jù)同學(xué)的姓名,在字典中搜索該同學(xué)的學(xué)號(hào),最后將同學(xué)的名字替換為其對(duì)應(yīng)的學(xué)號(hào)。

其次,是第二種需求。

# Additional Renaming

all_word=os.listdir(original_path)
for i in range(len(all_word)):
    old_name=all_word[i]
    old_name_name_end=old_name.rfind('_')
    old_name_name=old_name[7:old_name_name_end]
    new_name_number=[k for k, v in name_number_dict.items() if v==old_name_name]
    old_name_list=list(old_name)
    insert_number=''.join(str(w) for w in new_name_number)+'_'
    old_name_list.insert(old_name_name_end+1,insert_number)
    new_name=''.join(old_name_list)
    os.rename(original_path+old_name,original_path+new_name)

在這里,同樣使用old_name_name_end獲取原有文件名稱中姓名最后一個(gè)字所在的下標(biāo),從而確定了每一位同學(xué)姓名在原有文件名中的起始與終止下標(biāo)位置。此外,利用insert,將學(xué)號(hào)這一項(xiàng)插入到原有的文件名稱中。

最后,是第三種需求。

# Modified Renaming

all_word=os.listdir(original_path)
for i in range(len(all_word)):
    old_name=all_word[i]
    new_name=old_name.replace('_',"-",3)
    os.rename(original_path+old_name,original_path+new_name)

這個(gè)就簡(jiǎn)單很多了,直接利用replace,用連接符-替換掉原有的下劃線_即可。

至此,大功告成。

到此這篇關(guān)于Python實(shí)現(xiàn)自動(dòng)批量修改文件名稱的文章就介紹到這了,更多相關(guān)Python批量修改文件名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過程

    YOLOv5改進(jìn)之添加SE注意力機(jī)制的詳細(xì)過程

    作為當(dāng)前先進(jìn)的深度學(xué)習(xí)目標(biāo)檢測(cè)算法YOLOv5,已經(jīng)集合了大量的trick,但是還是有提高和改進(jìn)的空間,針對(duì)具體應(yīng)用場(chǎng)景下的檢測(cè)難點(diǎn),可以不同的改進(jìn)方法,下面這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)之添加SE注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式

    python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式

    這篇文章主要介紹了python sqlalchemy動(dòng)態(tài)修改tablename兩種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03
  • opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法

    這篇文章主要介紹了opencv resize圖片為正方形尺寸的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • python使用三角迭代計(jì)算圓周率PI的方法

    python使用三角迭代計(jì)算圓周率PI的方法

    這篇文章主要介紹了python使用三角迭代計(jì)算圓周率PI的方法,實(shí)例分析了Python迭代算法的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python shutil模塊文件和目錄操作示例詳解

    Python shutil模塊文件和目錄操作示例詳解

    本文將會(huì)學(xué)習(xí)到?shutil?模塊,包括其主要功能和示例代碼,以幫助你更好地理解如何使用它來處理文件和目錄
    2023-11-11
  • python 使用tkinter與messagebox寫界面和彈窗

    python 使用tkinter與messagebox寫界面和彈窗

    這篇文章主要介紹了python 使用tkinter與messagebox寫界面和彈窗,文章內(nèi)容詳細(xì),具有一的的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • pip安裝路徑修改的詳細(xì)方法步驟

    pip安裝路徑修改的詳細(xì)方法步驟

    在實(shí)際使用安裝python的pip安裝依賴庫(kù)是非常的便捷的,下面這篇文章主要給大家介紹了關(guān)于pip安裝路徑修改的詳細(xì)方法步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python深度學(xué)習(xí)TensorFlow神經(jīng)網(wǎng)絡(luò)基礎(chǔ)概括

    Python深度學(xué)習(xí)TensorFlow神經(jīng)網(wǎng)絡(luò)基礎(chǔ)概括

    這篇文章主要為大家介紹了Python深度學(xué)習(xí)中TensorFlow神經(jīng)網(wǎng)絡(luò)基礎(chǔ)概括,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • python os.listdir()亂碼解決方案

    python os.listdir()亂碼解決方案

    在本篇文章里小編給大家整理的是一篇關(guān)于python os.listdir()亂碼解決方案,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Anaconda2下實(shí)現(xiàn)Python2.7和Python3.5的共存方法

    Anaconda2下實(shí)現(xiàn)Python2.7和Python3.5的共存方法

    今天小編就為大家分享一篇Anaconda2下實(shí)現(xiàn)Python2.7和Python3.5的共存方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評(píng)論

扬州市| 叙永县| 霍城县| 台南县| 屯留县| 肇州县| 潮州市| 甘泉县| 建阳市| 兴业县| 黔西| 兴化市| 日照市| 小金县| 淳化县| 西峡县| 东丰县| 黄石市| 凤凰县| 闽侯县| 斗六市| 民丰县| 孝感市| 龙山县| 石狮市| 花莲县| 咸丰县| 白城市| 三穗县| 兴国县| 临海市| 永胜县| 祁连县| 兰西县| 凤庆县| 大同县| 缙云县| 无为县| 揭西县| 海丰县| 郁南县|