OS模組 批量修改檔案名字(二)

2021-10-09 03:53:35 字數 3726 閱讀 7201

通過三個案例,介紹批量修改檔案名字的方法。

一、批量在檔案前/後任意新增檔案名字

二、批量去掉檔案字元

三、批量替換某一型別檔案名字

一、批量在檔案前/後任意新增檔案名字(批量在檔案前面新增『方法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 ...