使用python批量修改文件名的方法(視頻合并時(shí))
不知道大家有沒(méi)有遇到這樣的情況,比如視頻合并時(shí)文件名沒(méi)有按照正常順序排列,像這樣
可見(jiàn),文件名排序是亂的。這個(gè)樣子合并出來(lái)的視頻一定也是亂的。所以得想辦法把文件名修改一下,讓軟件讀取出正確的順序。閑話少說(shuō),上代碼。
"""
注意:一、文件名除去擴(kuò)展名必須以 '_' + 數(shù)字 結(jié)尾。
二、convert.py 放在文件目錄。
三、目錄中不能有多余文件
主要算法:
根據(jù)最大數(shù)字的位數(shù)添加0
例如,如果最大數(shù)字為123,那么位數(shù)為3位,
1就要變成001、2變成002、23變成023,依次...
"""
import os li = [] new_li = [] # 新文件名 null_li = [] # 不標(biāo)準(zhǔn)的文件名 filenames = os.listdir('./') # 得到數(shù)字的最大位數(shù) for filename in filenames: tmp = os.path.splitext(filename)[0] # 得到文件名 if('_' in tmp): # 找到數(shù)字前的標(biāo)志 num = tmp.split('_')[-1] li.append(num) else: null_li.append(filename) max_len = len(max(li, key=len)) # ~ print(max_len) # 新文件名 for filename in filenames: name = os.path.splitext(filename)[:-1] # 得到文件名 name = '_'.join(name) ext = os.path.splitext(filename)[-1] # 得到擴(kuò)展名 if('_' in name): # 找到數(shù)字前的標(biāo)志 name1 = name.split('_')[:-1] name1 = '_'.join(name1) #文件名 num = name.split('_')[-1] quantity = max_len - len(num) name2 = '0' * quantity + num #數(shù)字名 filename = name1 + '_' + name2 + ext new_li.append(filename) # ~ new_li.sort() # ~ print(filenames) # ~ print('\n') # ~ print(new_li) # 檢查是否有不規(guī)范的文件名 if(len(filenames)-1 != len(new_li)): null_li.remove('convert.py') null_li = '、'.join(null_li) print("error: \""+ null_li + "\" 不以 '_' + 數(shù)字 結(jié)尾。") exit() # 修改文件名 i = 0 for oldname in filenames: if (oldname != 'convert.py'): os.rename(oldname,new_li[i]) print(oldname,'======>',new_li[i]) i+=1
其中注意事項(xiàng),在上述代碼里也說(shuō)明了。運(yùn)行成功后,再次查看
可見(jiàn),視頻已經(jīng)按照順序排列好了。
總結(jié)
以上所述是小編給大家介紹的視頻合并時(shí)使用python批量修改文件名的方,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python正則表達(dá)式完成車牌號(hào)檢驗(yàn)的代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式完成車牌號(hào)檢驗(yàn)的相關(guān)資料,在Python中正則表達(dá)式是一種用于匹配和操作字符串的強(qiáng)大工具,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02用python實(shí)現(xiàn)的線程池實(shí)例代碼
這篇文章主要介紹了用python實(shí)現(xiàn)的線程池實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python?gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索
這篇文章主要為大家介紹了python?gravis庫(kù)實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02python入門語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句
本文介紹了python入門語(yǔ)句基礎(chǔ)之if語(yǔ)句、while語(yǔ)句,if?語(yǔ)句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對(duì)集合中的每個(gè)元素都一個(gè)代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿足為止,本文通過(guò)示例代碼詳解介紹,需要的朋友參考下吧2022-04-04Python學(xué)習(xí)小技巧之利用字典的默認(rèn)行為
這篇文章主要給大家介紹了Python學(xué)習(xí)小技巧之利用字典的默認(rèn)行為的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05Python TensorFlow介紹與實(shí)戰(zhàn)
這篇文章介紹了Python TensorFlow介紹與實(shí)戰(zhàn),通過(guò)本文的介紹,我們不僅了解了TensorFlow的基本概念和安裝方法,還通過(guò)線性回歸和卷積神經(jīng)網(wǎng)絡(luò)的實(shí)例,深入探討了 TensorFlow 的使用技巧,TensorFlow 的強(qiáng)大功能和靈活性使其成為深度學(xué)習(xí)領(lǐng)域的重要工具,需要的朋友可以參考下2024-07-07