Python如何對(duì)文件進(jìn)行重命名
對(duì)文件進(jìn)行重命名
直接貼代碼:
import os
srcFile = './actwork/linkFile/allExtLinks - 副本.txt' dstFile = './actwork/linkFile/allExtLinks - copy.txt' try: ? ? os.rename(srcFile,dstFile) except Exception as e: ? ? print(e) ? ? print('rename file fail\r\n') else: ? ? print('rename file success\r\n')
對(duì)文件夾下文件按順序重命名
在處理機(jī)器學(xué)習(xí)的圖片時(shí),需要將圖片根據(jù)類別放入不同文件夾中,在文件夾下也想將圖片用數(shù)字遞增重命名一下,方便后續(xù)處理。
首先,我們看一下python的重命名函數(shù):
os.rename(src,dst)
src
:要修改的目錄名dst
:修改后的目錄名
如果dst是一個(gè)存在的目錄, 將拋出OSError。
注意:src和dst都是完整路徑+文件名
首先,我們先對(duì)文件夾重命名
先使用最簡(jiǎn)單的方法嘗試一下
import os def myrename(path): ? ? file_list=os.listdir(path) ? ? i=0 ? ? for fi in file_list: ? ? ? ? old_name=os.path.join(path,fi) ? ? ? ? new_name=os.path.join(path,str(i)) ? ? ? ? os.rename(old_name,new_name) ? ? ? ? i+=1 if __name__=="__main__": ? ? path="D:/test/121" ? ? myrename(path)
我們就可以看到文件夾已經(jīng)按照順序重命名了
稍微改動(dòng)一下,顯得沒有那么low
import os def myrename(path): file_list=os.listdir(path) for i,fi in enumerate(file_list): old_name=os.path.join(path,fi) new_name=os.path.join(path,"N0."+str(i)) os.rename(old_name,new_name) if __name__=="__main__": path="D:/test/121" myrename(path)
效果是一樣的,enumerate函數(shù)的作用就不再贅述了,我們還可以使用python zip來(lái)進(jìn)行修改:
import os def myrename(path): file_list=os.listdir(path) for i,fi in zip(range(len(file_list)),file_list): old_name=os.path.join(path,fi) new_name=os.path.join(path,"The."+str(i)) os.rename(old_name,new_name) if __name__=="__main__": path="D:/test/121" myrename(path)
效果一樣:
接下來(lái)我們對(duì)文件進(jìn)行重命名
上面的三種方法都是可以使用的,只需要稍微改動(dòng)一下,我以函數(shù)enumerate為例演示一下:
先建一個(gè)文本文檔
復(fù)制粘貼一堆,作為測(cè)試用,在函數(shù)中加入一個(gè)try-except,防止文件重命名出錯(cuò),這里重命名需要是相同格式的文件,否則就會(huì)報(bào)錯(cuò):
import os def myrename(path): file_list=os.listdir(path) for i,fi in enumerate(file_list): old_dir=os.path.join(path,fi) filename="my"+str(i+1)+"."+str(fi.split(".")[-1]) new_dir=os.path.join(path,filename) try: os.rename(old_dir,new_dir) except Exception as e: print(e) print("Failed!") else: print("SUcess!") if __name__=="__main__": path="D:/test/121" myrename(path)
代碼都是很簡(jiǎn)單的,入門小白,這里列舉的也是最簡(jiǎn)單的方法。這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python類繼承及super()函數(shù)使用說(shuō)明
這篇文章主要介紹了Python類繼承及super()函數(shù)使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11基于Python編寫一個(gè)語(yǔ)音合成系統(tǒng)
這篇文章主要介紹了如何利用Python制作一個(gè)語(yǔ)音合成系統(tǒng),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴可以了解一下2022-03-03基于Python中request請(qǐng)求得到的response的屬性問題
這篇文章主要介紹了基于Python中request請(qǐng)求得到的response的屬性問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式
今天小編就為大家分享一篇利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-12-12python創(chuàng)建與遍歷二叉樹的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python創(chuàng)建與遍歷二叉樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03VSCode運(yùn)行或調(diào)試python文件無(wú)反應(yīng)的問題解決
這篇文章主要給大家介紹了關(guān)于VSCode運(yùn)行或調(diào)試python文件無(wú)反應(yīng)的問題解決,使用VScode編譯運(yùn)行C/C++沒有問題,但是運(yùn)行Python的時(shí)候出了問題,所以這里給大家總結(jié)下,需要的朋友可以參考下2023-07-07