python如何按順序批量修改文件名
python按順序批量修改文件名
在之前批量修改文件名的時(shí)候出現(xiàn)的問(wèn)題是使用os.listdir出現(xiàn)亂序,即修改文件名的時(shí)候不按照文件排列的順序,導(dǎo)致了不必要的麻煩。
os.listdir排列的順序是按照例如:1,10,11,2,20,21…的順序想達(dá)到的正常順序:1,2,3,4,5…
解決代碼
import os #設(shè)定文件路徑 path='C:/Users/Louise喵/Desktop/FOV60/' #獲取該目錄下所有文件,存入列表中 fileList=os.listdir(path) #get_key是sorted函數(shù)用來(lái)比較的元素,該處用lambda表達(dá)式替代函數(shù)。 get_key = lambda i : int(i.split('.')[0]) new_sort = sorted(fileList, key=get_key) #print(fileList, '\n', new_sort) n = 0 for i in fileList: # 設(shè)置舊文件名(就是路徑+文件名) oldname = path + os.sep + new_sort[n] # os.sep添加系統(tǒng)分隔符 # 設(shè)置新文件名 newname = path + os.sep + 'p' + str(n + 1)+'.csv' os.rename(oldname, newname) # 用os模塊中的rename方法對(duì)文件改名 print(oldname, ' ======> ', newname) n += 1
其中排序的關(guān)鍵語(yǔ)句為:
get_key = lambda i : int(i.split('.')[0]) new_sort = sorted(fileList, key=get_key)
split()是一個(gè)常用的分隔字符的方法,split(‘.’)[0]表示以 .進(jìn)行分隔取.前面的內(nèi)容。
運(yùn)行結(jié)果:
python批量按順序遞增修改文件名代碼(可指定文件名)
如需在文件名添加其它相應(yīng)字符,修改代碼相應(yīng)字符部分即可,此方法比較簡(jiǎn)單,容易理解。
import os # 設(shè)置要重命名的文件夾路徑 folder_path = 'C:/Users/Administrator/Desktop/CR/RGB三通道' # 獲取文件夾中所有文件名 file_names = os.listdir(folder_path) # 設(shè)置起始編號(hào) start_num = 1 # 遍歷文件名列表并修改文件名 for file_name in file_names: # 獲取文件名的后綴 file_extension = os.path.splitext(file_name)[1] # 構(gòu)造新的文件名 new_file_name = str(start_num) + file_extension #也可在此處添加相應(yīng)的字符,有區(qū)別重命名文件 #new_file_name = "相應(yīng)字符"+str(start_num) + file_extension # 構(gòu)造舊文件的路徑和新文件的路徑 old_file_path = os.path.join(folder_path, file_name) new_file_path = os.path.join(folder_path, new_file_name) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'{file_name}已重命名為{new_file_name}') # 遞增編號(hào) start_num += 1
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python讀取mat(matlab數(shù)據(jù)文件)并實(shí)現(xiàn)畫(huà)圖
這篇文章主要介紹了Python讀取mat(matlab數(shù)據(jù)文件)并實(shí)現(xiàn)畫(huà)圖問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12opencv3/C++ 平面對(duì)象識(shí)別&透視變換方式
今天小編就為大家分享一篇opencv3/C++ 平面對(duì)象識(shí)別&透視變換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12對(duì)pandas進(jìn)行數(shù)據(jù)預(yù)處理的實(shí)例講解
下面小編就為大家分享一篇對(duì)pandas進(jìn)行數(shù)據(jù)預(yù)處理的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python對(duì)口紅進(jìn)行數(shù)據(jù)分析來(lái)選定情人節(jié)禮物
情人節(jié)送小仙女什么禮物?讓我們來(lái)用Python對(duì)口紅進(jìn)行數(shù)據(jù)分析,那個(gè)女孩子會(huì)拒絕這樣精心挑選的禮物,感興趣的小伙伴快來(lái)看看吧2022-02-02深入理解python對(duì)json的操作總結(jié)
Json最廣泛的應(yīng)用是作為AJAX中web服務(wù)器和客戶端的通訊的數(shù)據(jù)格式,本篇文章主要介紹了python對(duì)json的操作總結(jié),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01Python queue隊(duì)列原理與應(yīng)用案例分析
這篇文章主要介紹了Python queue隊(duì)列原理與應(yīng)用,結(jié)合具體案例形式分析了Python queue隊(duì)列的原理、功能、實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下2019-09-09Django中對(duì)通過(guò)測(cè)試的用戶進(jìn)行限制訪問(wèn)的方法
這篇文章主要介紹了Django中對(duì)通過(guò)測(cè)試的用戶進(jìn)行限制訪問(wèn)的方法,Django是眾多Python高人氣web框架中最為著名的一個(gè),需要的朋友可以參考下2015-07-07