本博文源於python基礎,主要探討如何對文件進行重命名。
實驗效果
原圖
改完名字後
實驗原理
定義一個統一的後綴,根據後綴名前後,將原文件命名剝離,然後將自己需要重命名的文件名填充到文件命裏,並作好序號的更改。
實驗代碼
import os
perfix = 'hello' # perfix爲重命名後的文件起始字符
length = 2 # length爲除去perfix後,文件名要達到的長度
base = 1 # 文件名的起式位置
format = 'mdb' # 文件的後綴名
# 函數PadLeft將文件名補全到指定長度
# strs爲要補全的字符
# num爲要達到的長度
# padstr未達到的長度所添加的字符
def PadLeft(strs, num, padstr):
strlength = len(strs)
n = num - strlength
if n >= 0:
strs = padstr * n + strs
return strs
# 爲了避免誤操作,這裏先提示用戶
print('the files in %s will be renamed'% os.getcwd())
all_files = os.listdir(os.getcwd())
print([f for f in all_files if os.path.isfile(f)]) # print輸出當前目錄下的所有文件名
input = input('press y to continue\n') # 獲取用戶輸入
if input.lower() != 'y':
exit()
filenames = os.listdir(os.curdir) #獲取當前目錄中的內容
# 基數減1,爲了下面i+=1在第一次執行時等於基數
i = base - 1
for filename in filenames: # 遍歷進行重命名
i += 1
# 判斷當前路徑是否是文件
if filename != 'test.py' and os.path.isfile(filename):
name = str(i) # 將i轉換成字符
name = PadLeft(name,length,'0') # 將name補全到指定長度
t = filename.split('.') # 分割文件名,以檢查其是否要修改的類型
m = len(t)
if format == '': # 如果未指定文件類型,則更改當前目錄中的所有文件
os.rename(filename,perfix+name+'.'+t[m-1])
else: # 否則只修改指定類型
if t[m-1] == format:
os.rename(filename,perfix+name+'.'+t[m-1])
else:
i -= 1
else:
i -= 1
all_files = os.listdir(os.getcwd())
print([f for f in all_files if os.path.isfile(f)])