通過三個案例,介紹批量修改檔案名字的方法。
一、批量在檔案前/後任意新增檔案名字
二、批量去掉檔案字元
三、批量替換某一型別檔案名字
一、批量在檔案前/後任意新增檔案名字(批量在檔案前面新增『方法11』字元)
#在檔案前面/後面批量修改檔案名字
def filename_modify(target_dir,addstr='end'):
#判斷路徑是否存在
if os.path.exists(target_dir) == false:
raise exception('path is not exist')
#遍歷資料夾中的檔名
for file in os.listdir(target_dir):
#分割檔名和拓展名
filename = os.path.splitext(file)[0]
fileexpand = os.path.splitext(file)[1]
#不修改資料夾的名字 (方法二:判斷檔名是否為空)
if fileexpand == '':
continue
#將所有檔案的後面新增-kkb
newname = filename + addstr + fileexpand
#修改名字
oldpath = os.path.join(target_dir,file) #老路徑
newpath = os.path.join(target_dir,newname) #新路徑
os.rename(oldpath,newpath)
pass
filename_modify('d:\anaconda',addstr='方法11')
二、批量去掉檔案字元(批量去掉檔案中『』方法『』字元)
#批量修改檔案名字,將所有檔案中的方法11去掉
import re
def filename_modify(target_dir,addstr='',position = 'end',oldstr='',newstr=''):
#判斷路徑是否存在
if os.path.exists(target_dir) == false:
raise exception('path is not exist')
#遍歷資料夾中的檔名
for file in os.listdir(target_dir):
#分割檔名和拓展名
filename = os.path.splitext(file)[0]
fileexpand = os.path.splitext(file)[1]
#不修改資料夾的名字 (方法二:判斷檔名是否為空)
if fileexpand == '':
continue
#判斷新增的位置
if position == 'end':
#將所有檔案的後面新增-kkb
newname = filename + addstr + fileexpand
elif position == 'head':
#將所有檔案的後面新增-kkb
newname = addstr + filename + fileexpand
elif position == 'replace':
pattern = re.findall(oldstr,filename) #返回列表
#列表迴圈取值
for value in pattern:
filename = filename.replace(value,newstr)
newname = filename + fileexpand
#修改名字
oldpath = os.path.join(target_dir,file) #老路徑
newpath = os.path.join(target_dir,newname) #新路徑
os.rename(oldpath,newpath)
# print( newname)
pass
filename_modify('d:\anaconda',position = 'replace',oldstr = '方法',newstr = '')
三、批量替換某一型別檔案名字 (批量在xls檔案前面新增abc字元)
#批量修改某類檔案名字
import re
def filename_modify(target_dir,addstr='',position = 'end',oldstr='',newstr='',filetype=none):
# target_dir 路徑 ;addstr 新增的字元 ; position 新增的位置 end結尾 head 開頭;oldstr 替換的舊字元 ;
#newstr 替換的新字元 ; filetype 指定型別
#判斷路徑是否存在
if os.path.exists(target_dir) == false:
raise exception('path is not exist')
#遍歷資料夾中的檔名
for file in os.listdir(target_dir):
#分割檔名和拓展名
filename = os.path.splitext(file)[0]
fileexpand = os.path.splitext(file)[1]
#不修改資料夾的名字 (方法二:判斷檔名是否為空)
if fileexpand == '':
continue
#過濾檔案型別,從而達到修改指定型別
if filetype != none and filetype not in fileexpand:
continue
#判斷新增的位置
if position == 'end':
#將所有檔案的後面新增
newname = filename + addstr + fileexpand
elif position == 'head':
#將所有檔案的後面新增
newname = addstr + filename + fileexpand
elif position == 'replace':
pattern = re.findall(oldstr,filename) #返回列表
#列表迴圈取值
for value in pattern:
filename = filename.replace(value,newstr)
newname = filename + fileexpand
#修改名字
oldpath = os.path.join(target_dir,file) #老路徑
newpath = os.path.join(target_dir,newname) #新路徑
os.rename(oldpath,newpath)
# print( newname)
pass
filename_modify('d:\anaconda',
position = 'head',addstr = 'abc',
filetype = 'xls')
os 批量修改檔名
def f rename url s1 re.findall r d w url s2 join s1 ev4 return s2 def get file u if os.path.isabs u pass if not os.path.isdir u print 路徑不存在或者是非資料夾 u r...
Python利用os模組批量修改檔名
通過查閱資料os模組中rename和renames都可以做到 他們的區別為.rename 只能修改檔名 renames 可以修改檔名,還可以修改檔案上級目錄名稱 另乙個用到的方法是os.listdir path path為路徑 此方法可以將指定路徑資料夾中的檔名錄入乙個列表中 下面是 1 impor...
Matlab批量修改 重新命名 檔案名字
clear all location f files 需修改名字的檔案的所在位址 cd f m檔案所在位置 files dir location for i 1 length files if strcmp files i name,1 strcmp files i name,1 continue ...