Python如何對文件進(jìn)行重命名
對文件進(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')對文件夾下文件按順序重命名
在處理機(jī)器學(xué)習(xí)的圖片時(shí),需要將圖片根據(jù)類別放入不同文件夾中,在文件夾下也想將圖片用數(shù)字遞增重命名一下,方便后續(xù)處理。
首先,我們看一下python的重命名函數(shù):
os.rename(src,dst)
src:要修改的目錄名dst:修改后的目錄名
如果dst是一個(gè)存在的目錄, 將拋出OSError。
注意:src和dst都是完整路徑+文件名
首先,我們先對文件夾重命名
先使用最簡單的方法嘗試一下
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)按照順序重命名了
稍微改動一下,顯得沒有那么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來進(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)效果一樣:

接下來我們對文件進(jìn)行重命名
上面的三種方法都是可以使用的,只需要稍微改動一下,我以函數(shù)enumerate為例演示一下:

先建一個(gè)文本文檔
復(fù)制粘貼一堆,作為測試用,在函數(shù)中加入一個(gè)try-except,防止文件重命名出錯(cuò),這里重命名需要是相同格式的文件,否則就會報(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)
代碼都是很簡單的,入門小白,這里列舉的也是最簡單的方法。這些僅為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python中request請求得到的response的屬性問題
這篇文章主要介紹了基于Python中request請求得到的response的屬性問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式
今天小編就為大家分享一篇利用pandas將非數(shù)值數(shù)據(jù)轉(zhuǎn)換成數(shù)值的方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python創(chuàng)建與遍歷二叉樹的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python創(chuàng)建與遍歷二叉樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
VSCode運(yùn)行或調(diào)試python文件無反應(yīng)的問題解決
這篇文章主要給大家介紹了關(guān)于VSCode運(yùn)行或調(diào)試python文件無反應(yīng)的問題解決,使用VScode編譯運(yùn)行C/C++沒有問題,但是運(yùn)行Python的時(shí)候出了問題,所以這里給大家總結(jié)下,需要的朋友可以參考下2023-07-07

