Python實現亂序文件重新命名編號

人生苦短,快學Python!

最近有位讀者朋友遇到瞭一個小問題,私聊找小五答疑。感覺也會有其他同學會遇到,所以幹脆分享出來。

如下圖所示,在本地文件夾中有這樣一堆視頻文件,在這種情況下並不是亂序的。

但是將其上傳到網盤中後,就會經常變成亂序。即它們會按照1、10、11、2、20這樣排序,並不方便我們按順序去依次觀看。

所以我們希望能夠給它們在本地重新命名編號,比如可以按照001、002、003···、020這樣排序,就可以避免上面這種尷尬的情況瞭。

在Python中,os模塊可以用來自動處理各種文件和目錄,比如復制、移動、重命名和刪除等操作。

獲取文件列表

在交互式環境中輸入如下命令:

import os
path =  os.getcwd()
filenames = os.listdir(path)
filenames

輸出:

os模塊中的getcwd()函數,使用它可以獲取當前工作目錄。os模塊中的listdir()函數,可以返回工作目錄中的所有文件和子目錄。通過這兩個函數,我們就獲取瞭當前工作目錄下的所有文件。

篩選視頻文件

在交互式環境中輸入如下命令:

file_mp4s = [i for i in filenames if i.split(".")[-1] == "mp4"]
file_mp4s

輸出:

這一步驟,是用來篩選文件列表中的所有mp4文件。用循環+條件太繁瑣,而列表生成式則可以用一行語句得到視頻文件。

批量重命名

在交互式環境中輸入如下命令:

for i in file_mp4s:
   new_name = i.split("-")[0].zfill(3) + "-" + i.split("-")[1]
   os.rename(i,new_name)

輸出:

os模塊中的rename()函數,使用它可以重命名文件。

這裡還用到一個字符串函數zfill(),它會返回指定長度的字符串,原字符串右對齊,前面填充0。所以"1".zfill(3)的話,會返回'001'。

這樣,我們就實現瞭亂序文件的重新命名編號

到此這篇關於Python實現亂序文件重新命名編號的文章就介紹到這瞭,更多相關Python亂序文件重命名內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: