python實現對文件進行重命名

本博文源於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)])


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章