如何使用Python一鍵修改上萬(wàn)個(gè)文件名
一、頭疼的修改文件名,我是傻了
同事問(wèn)我會(huì)不會(huì)改目錄下的文件名,我大叫一聲:你傻呀,你不會(huì)右鍵重命名呀呀,或者按 F2快捷鍵,但是當(dāng)我解壓完同事的目錄后,人都傻了,自己看圖哈??!

偷偷告訴你,這樣的文件有一大堆,如果你右鍵估計(jì)一天才能搞定,頓時(shí)我就不敢出聲了。
先看同事的需求是什么:幫他去掉類(lèi)似 **[圖靈程序設(shè)計(jì)叢書(shū)].**的詞,只留下書(shū)名
看到這,請(qǐng)問(wèn)小伙伴們你是怎么解決的,歡迎留言一起吐槽,哈哈哈哈哈哈。
二、茅塞頓開(kāi),秒解決同事問(wèn)題
在我思考如何解決同事這個(gè)問(wèn)題時(shí),我的腦海中突然靈光一閃,之前寫(xiě)過(guò)一鍵修改圖片大小的程序,那我為何不也寫(xiě)個(gè)程序直接一鍵修改文件名呢?。?!說(shuō)干就干
考慮到時(shí)效性,我用了Python來(lái)寫(xiě)這個(gè)小程序,歡迎留言交流你的程序:上代碼 -->
import os
import re
import time
"""對(duì)指定目錄下的所有文件進(jìn)行有選擇的修改名稱(chēng)"""
def ReFileName(dirPath,pattern):
"""
:param dirPath: 文件夾路徑
:param pattern: 正則匹配模式
:return:
"""
# 對(duì)目錄下的文件進(jìn)行遍歷
for file in os.listdir(dirPath):
# 判斷是否是文件
if os.path.isfile(os.path.join(dirPath, file)) == True:
# 用正則匹配,去掉不需要的詞
newName = re.sub(pattern, "", file)
# 設(shè)置新文件名
newFilename = file.replace(file, newName)
# 重命名
os.rename(os.path.join(dirPath, file), os.path.join(dirPath, newFilename))
print("文件名已統(tǒng)一修改成功")
if __name__ == '__main__':
timeStart = time.time()
dirPath = r"F:\test"
pattern = re.compile(r'\[{1}(.+)]\.')
ReFileName(dirPath,pattern)
timeEnd = time.time()
print("程序走了%d秒"%(timeEnd-timeStart))代碼簡(jiǎn)要說(shuō)明一下:
1.因?yàn)檫@里需求只是簡(jiǎn)單的修改文件名,所以小伙伴們千萬(wàn)不要用open()……這種方法,雖然它也是可以的,但是因?yàn)槲募?,讀寫(xiě)太慢,時(shí)效極低。
2. 還有需要替換或者提取的文件名,不僅限于圖中所示,你可以靈活運(yùn)用正則表達(dá)式來(lái)達(dá)到自己的需求。
看效果:

再看程序運(yùn)行時(shí)間:

此處是不是應(yīng)該要有個(gè)贊,哈哈哈哈!趕快動(dòng)起來(lái)吧?。。?!
這里還分享一個(gè)干貨給小伙伴們哈!!
python獲取當(dāng)前目錄下的一些信息---->
"""獲取當(dāng)前目錄下的信息"""
def ReFileName1(dirPath):
for root, dirs, files in os.walk(dirPath):
print(root) # 當(dāng)前目錄路徑
print(dirs) # 當(dāng)前路徑下所有子目錄
print(files) # 當(dāng)前路徑下所有非目錄子文件
總結(jié)
到此這篇關(guān)于如何使用Python一鍵修改上萬(wàn)個(gè)文件名的文章就介紹到這了,更多相關(guān)Python一鍵修改文件名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中input()與raw_input()的區(qū)別分析
這篇文章主要介紹了python中input()與raw_input()的區(qū)別,需要的朋友可以參考下2016-02-02
Python面向?qū)ο笾瓷?自省機(jī)制實(shí)例分析
這篇文章主要介紹了Python面向?qū)ο笾瓷?自省機(jī)制,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中的反射/自省機(jī)制概念、原理及相關(guān)屬性操作技巧,需要的朋友可以參考下2018-08-08
Python Socket編程實(shí)現(xiàn)猜數(shù)字游戲交互體驗(yàn)
當(dāng)利用Python的Socket編程創(chuàng)建一個(gè)猜數(shù)字游戲時(shí),需要分別實(shí)現(xiàn)服務(wù)器端和客戶端的邏輯,本文將詳細(xì)描述這兩個(gè)部分的功能和代碼片段2024-01-01
django利用request id便于定位及給日志加上request_id
這篇文章主要介紹了django利用request id便于定位及給日志加上request_id的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧2018-08-08
Python+OpenCV圖片局部區(qū)域像素值處理詳解
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV圖片局部區(qū)域像素值處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Python?Pendulum進(jìn)行日期時(shí)間處理的示例詳解
Pendulum?是對(duì)?Python?datetime?的繼承和發(fā)展,讓日期時(shí)間處理更簡(jiǎn)單,這篇文章主要為大家詳細(xì)介紹了Pendulum的具體應(yīng)用,需要的可以參考下2025-02-02

