批量修改檔名中相同部分(Python)

2021-10-08 11:17:46 字數 2061 閱讀 1093

在網上找了很多方法,最多的是寫乙個bat檔案,在嘗試之後發現只能批量修改前字尾,中間部分無法直接修改,索性自己用python的os模組寫了乙個簡單的批量修改**。

直接修改**中的dirpath, originalname, modifyname即可

注意:可以修改當前檔案下下所有檔案(包括子資料夾下的檔案,但是不會修改資料夾的名字)

如果要批量刪除,令modifyname=""

批量修改字尾名需要在檢視中開啟檔案拓展名,然後在originalname裡輸入原來的拓展名即可修改

import os

defmodifyfilename

(filepath, originalname, modifyname)

:''' 修改檔名內容

:param filepath: 檔案路徑

:param originalname: 待修改內容

:param modifyname: 修改後內容

:return: void

'''filename = os.path.basename(filepath)

if originalname in filename:

replacename = filename.replace(originalname, modifyname)

replacepath = os.path.dirname(filepath)

+'\\'

+replacename

try: os.rename(filepath, replacepath)

print

(filename +

" 已修改為:"

+ replacename)

except

:print

(filename +

"檔案路徑不存在"

)def

modifyall

(dirpath, originalname, modifyname)

:''' 修改資料夾內所有檔案

:param dirpath: 資料夾路徑

:param originalname: 待修改內容

:param modifyname: 修改後內容

:return: void

'''for root, dirs, files in os.walk(dirpath)

:for

file

in files:

modifyfilename(os.path.join(root,

file

),originalname,modifyname)

print

("已全部修改!"

)if __name__ ==

'__main__'

:#print("請輸入資料夾路徑:")

dirpath =

"e:\桌面\新建資料夾\測試目錄"

#dirpath = input()

#print("請輸入需要修改的內容:")

originalname =

"測試"

#originalname = input()

#print("請輸入修改後的內容:")

modifyname =

"修改"

#modifyname = input()

print

("正在執行中~~~~~~~~~"

) modifyall(dirpath, originalname, modifyname)

效果圖

修改前

修改後

批量修改檔名

10.1整理女兒 的時候,發現從老婆手機拍出來的 檔名不帶拍照日期的,這樣有個問題,就是那麼積累了2年的 無法顯眼的知道是什麼時候拍的,而且在轉移 的時候,容易把修改日期更改掉,這樣就會丟失拍照的日期,對後續回憶 的時候就不知道當時女兒多大。如果手工修改,那麼幾千張 修改工作量實在太大,以修改一張 ...

批量修改檔名

批量修改檔案字尾 include include include includeint main else char newname 1024 fgets oldname,1024,fp int length strlen oldname 把讀到字串最後的回車 換成 0 表示字串的結束標示 oldn...

批量修改檔名

ren命令可用於修改檔案的名稱,包括字尾名。比如,將d盤中的1.jpg重新命名為2.png,只需在命令提示符中輸入下面的命令,然後回車即可。注意,如果提示許可權不足,那麼你需要以管理員身份執行命令提示符。如果要批量修改字尾名,可借助萬用字元來實現。比如將d盤中的所有檔案字尾名改為jpg的命令為 re...