python指令碼 批量修改檔名

2021-09-11 14:02:53 字數 3067 閱讀 2913

批量修改ios工程目錄檔名

import os

#檔案字首

filename_prefix = 'header'

#檔案字尾

filename_suffix = 'suffix'

#需要更新檔案目錄

target_path = '/users/hostname/demo/projectname/projectname'

#需要查詢檔案目錄

project_path = '/users/hostname/demo/projectname/projectname/sections'

#工程檔案位址

pbxpro_path = '/users/hostname/demo/projectname/projectname.xcodeproj/project.pbxproj'

#檔案重新命名函式,返回新的檔名

def file_rename(file_path):

print(file_path)

root_path = os.path.split(file_path)[0] # 檔案目錄

root_name = os.path.split(file_path)[1] # 檔名包含副檔名

filename = os.path.splitext(root_name)[0] # 檔名

filetype = os.path.splitext(root_name)[1] # 副檔名

filename_new = filename

if filename.startswith(filename_prefix) == false:

filename_new = filename_prefix + filename_new

if filename.encode(filename_suffix) == false:

filename_new = filename_new + filename_suffix

# 新檔名路徑

new_path = os.path.join(root_path, filename_new + filetype) # 拼接新路徑

# 檔案重新命名

os.renames(file_path, new_path)

return filename_new

def verify_filename(file_name):

if file_name.endswith('.h') or file_name.endswith('.m') or file_name.endswith('.mm'):

return true

return false

#定義乙個字典 key=舊類名 value=新類名

needmodifydic = {}

needmodifyfilenamedict = {}

#遍歷檔案,符合規則的進行重新命名

for (root, dirs, files) in os.walk(project_path):

for file_name in files:

if verify_filename(file_name):

old_name = os.path.splitext(file_name)[0]

new_name = file_rename(os.path.join(root, file_name))

needmodifydic[old_name] = new_name

filetype = os.path.splitext(file_name)[1] # 副檔名

old_filename = old_name + filetype

new_filename = new_name + filetype

needmodifyfilenamedict[old_filename] = new_filename

#遍歷檔案,在檔案中更換新類名的引用

print('------------------------------')

for (root, dirs, files) in os.walk(target_path):

for file_name in files:

if verify_filename(file_name):

print('-----foldername-------' + file_name)

with open(os.path.join(root, file_name), 'r+') as f:

s0 = f.read()

f.close()

for key in needmodifydic:

if key in s0:

with open(os.path.join(root, file_name), 'r+') as f4:

s1 = f4.read().replace(key, needmodifydic[key])

print(key + ' ------> ' + needmodifydic[key])

f4.seek(0)

f4.write(s1)

f4.truncate()

f4.close()

#替換配置檔案中的類名

print('******************************')

for key in needmodifyfilenamedict:

with open(pbxpro_path, 'r+') as f:

s0 = f.read()

f.close()

if key in s0:

with open(pbxpro_path, 'r+') as f2:

s = f2.read().replace(key, needmodifyfilenamedict[key])

print(key + ' *****=> ' + needmodifyfilenamedict[key])

f2.seek(0)

f2.write(s)

f2.truncate()

f2.close()

shell指令碼 批量修改檔名

參考鏈結1 shell指令碼 批量修改檔名 刪除檔名中字元 參考鏈結2 linux shell 字串操作詳解 長度,讀取,替換,擷取,連線,對比,刪除,位置 參考鏈結3 每天乙個linux命令 21 find命令之xargs 參考鏈結5 shell 學習第十天 sed 查詢與替換 批量改名,增加字元...

python批量修改檔名

修改前 flv檔案是從rar檔案中解壓出來的。由於英文不好,並且有的flv檔案的名字並不十分清晰明了,所以打算將flv檔案名字改為相應的rar檔案的名字。僅供參考,新手勿噴 主要使用了python中的re 正規表示式 和os模組中的函式。coding gb2312 import os import ...

python批量修改檔名

最近工作需要給大量檔案改名。恰巧,本人又在自學python,所以就想用python寫個程式來自動修改相應的檔名。下面就通過 來介紹一下我的做法吧。先說一下,我的工作要求是,在所有的資料檔案前加上資料所在資料夾的名字,改完名字後把所有的檔案彙總到乙個新的資料夾。我要處理的檔案有的存放在次最後層目錄 有...