不知道大家有沒有遇到這樣的情況,比如視頻合并時(shí)文件名沒有按照正常順序排列,像這樣
可見,文件名排序是亂的。這個(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)行成功后,再次查看
可見,視頻已經(jīng)按照順序排列好了。
總結(jié)
以上所述是小編給大家介紹的視頻合并時(shí)使用python批量修改文件名的方,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
