批量修改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寫個程式來自動修改相應的檔名。下面就通過 來介紹一下我的做法吧。先說一下,我的工作要求是,在所有的資料檔案前加上資料所在資料夾的名字,改完名字後把所有的檔案彙總到乙個新的資料夾。我要處理的檔案有的存放在次最後層目錄 有...