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 xlrd模塊導(dǎo)入過(guò)程及常用操作
這篇文章主要介紹了Python xlrd模塊導(dǎo)入過(guò)程及常用操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python與Java進(jìn)行相互操作與調(diào)用的解決方案大全
Python與Java是兩種流行的編程語(yǔ)言,各自有不同的優(yōu)勢(shì),在某些應(yīng)用場(chǎng)景下,我們需要讓Python和Java相互調(diào)用,下面小編就為大家介紹一下幾種Python與Java互操作的方法吧2025-07-07
Python判斷一個(gè)數(shù)是否為質(zhì)數(shù)的3種方法(超詳細(xì))
一個(gè)大于1的自然數(shù),除了1和它本身外,不能被其他自然數(shù)(質(zhì)數(shù))整除(2, 3, 5, 7等),換句話說(shuō)就是該數(shù)除了1和它本身以外不再有其他的因數(shù),下面這篇文章主要給大家介紹了關(guān)于利用Python判斷一個(gè)數(shù)是否為質(zhì)數(shù)的3種方法,需要的朋友可以參考下2024-09-09
Python3實(shí)現(xiàn)mysql連接和數(shù)據(jù)框的形成(實(shí)例代碼)
這篇文章主要介紹了Python3實(shí)現(xiàn)mysql連接和數(shù)據(jù)框的形成,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
Python字節(jié)碼與程序執(zhí)行過(guò)程詳解
這篇文章主要為大家介紹了Python字節(jié)碼與程序執(zhí)行過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

