使用python批量修改文件名的方法(視頻合并時(shí))
不知道大家有沒有遇到這樣的情況,比如視頻合并時(shí)文件名沒有按照正常順序排列,像這樣
可見,文件名排序是亂的。這個(gè)樣子合并出來的視頻一定也是亂的。所以得想辦法把文件名修改一下,讓軟件讀取出正確的順序。閑話少說,上代碼。
"""
注意:一、文件名除去擴(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),在上述代碼里也說明了。運(yùn)行成功后,再次查看
可見,視頻已經(jīng)按照順序排列好了。
總結(jié)
以上所述是小編給大家介紹的視頻合并時(shí)使用python批量修改文件名的方,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
python正則表達(dá)式完成車牌號檢驗(yàn)的代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式完成車牌號檢驗(yàn)的相關(guān)資料,在Python中正則表達(dá)式是一種用于匹配和操作字符串的強(qiáng)大工具,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02用python實(shí)現(xiàn)的線程池實(shí)例代碼
這篇文章主要介紹了用python實(shí)現(xiàn)的線程池實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python?gravis庫實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索
這篇文章主要為大家介紹了python?gravis庫實(shí)現(xiàn)圖形數(shù)據(jù)可視化實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-02-02python入門語句基礎(chǔ)之if語句、while語句
本文介紹了python入門語句基礎(chǔ)之if語句、while語句,if?語句讓你能夠檢查程序的當(dāng)前狀態(tài),并據(jù)此采取相應(yīng)的措施,而for?循環(huán)用于針對集合中的每個(gè)元素都一個(gè)代碼塊,而?while?循環(huán)不斷地運(yùn)行,直到指定的條件不滿足為止,本文通過示例代碼詳解介紹,需要的朋友參考下吧2022-04-04Python學(xué)習(xí)小技巧之利用字典的默認(rèn)行為
這篇文章主要給大家介紹了Python學(xué)習(xí)小技巧之利用字典的默認(rèn)行為的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05Python TensorFlow介紹與實(shí)戰(zhàn)
這篇文章介紹了Python TensorFlow介紹與實(shí)戰(zhàn),通過本文的介紹,我們不僅了解了TensorFlow的基本概念和安裝方法,還通過線性回歸和卷積神經(jīng)網(wǎng)絡(luò)的實(shí)例,深入探討了 TensorFlow 的使用技巧,TensorFlow 的強(qiáng)大功能和靈活性使其成為深度學(xué)習(xí)領(lǐng)域的重要工具,需要的朋友可以參考下2024-07-07