這兩天閑着無聊,看到福建疫情,然后想着停課的孩子們在家可能也會很無聊,可能就在家天天手機。所以想着爬些小孩子感興趣的故事來玩兒。爬了一千多吧。部分截圖如下:
這是從網站爬下來的初始格式,沒有去更改,對於有強迫症的我來說,文件名加后綴格式就可以了,文件名里有字符串 mp3是咋回事嘛。所以想着批量處理下。以下是處理代碼:
import os import sys dPath = 'X:\故事\世界著名童話' # 存儲要修改文件名的文件夾 files = os.listdir(dPath) # 先遍歷 n = 0 # 設置初始值 for i in files: # 遍歷文件 oldfilename = dPath +'\\' + files[n] # 獲取舊的文件路徑和名稱 # print(oldfilename) # 打印看是否符合預期 if ' mp3' in oldfilename: # 我們加個判定條件吧 newfilename = dPath + '\\' + i.replace(' mp3', '') # 要改成的路徑和文件名 print(newfilename) # 打印看是否符合預期 os.rename(oldfilename, newfilename) # 開始重命名 print("已經將文件====>" + i + "更名為:" + newfilename) # 提示結果 else: print('文件===> 【' + i + '】 無需整理!') # 如果條件里沒有,我們就不整理了 n += 1
代碼運行完才發現是處理了另一個子文件夾,沒有處理到故事根文件夾下的所有子文件夾。效果如下:
還得去寫個處理二級文件夾下的批量改名還有處理批量解壓的代碼。
============================補充,將一個名為兒童故事的子目錄所有文件進行重命名======================================
最初始的文件夾結構是下面這樣的
然后子目錄下的文件是下面這樣的:
# 補充之前的代碼,只做了一個子文件夾,這不剛跑步回來,想了個簡單的方法。貼代碼。
import os import sys def reName(dPath): # 讀取該文件夾下的所有文件(包括文件夾) files = os.listdir(dPath) n = 0 # 初始化計值 # 開始遍歷文件 for i in files: # 原來文件的路徑和名稱 oldfilename = dPath + '\\' + files[n] print(oldfilename) # 如果是文件夾就遞歸調用函數 if os.path.isdir(oldfilename): reName(oldfilename) # 如果不是文件夾,我們就這樣處理 if ' mp3' in oldfilename: newfilename = dPath + '\\' + i.replace(' mp3', '') # 我們將原來的文件名去掉mp3 print(newfilename) # 打印看是否符合預期 # 符合預期就就地重命名文件 os.rename(oldfilename, newfilename) print('已經將文件名為====>【 ' + i + ' 】更改為:===>' + newfilename) else: print('文件名為========>【' + i + '】無需整理!' ) n += 1 filePath = 'X:\故事' reName(filePath) #調用函數進行處理
一運行呢,就把指定的filePath下的所有文件都重命名了。這里只是多做了個判定,判定如果是文件夾,就遞歸調用函數進行處理文件夾下的文件。