在更新升級包的時候,文件夾內的so文件的合包邏輯是新版本覆蓋舊版本,代碼邏輯是先將最初的升級包內so文件復制到目標文件夾中,之后版本的升級包在復制之前先和目標文件夾內的文件比對,如果文件名一樣就刪除目標文件夾內對應文件,再將新版本的文件移入,具體解釋如下:
一、代碼
import os
import shutil
filePath = 'C:\\Users\\HU\\Desktop\\UFP'
aimPath = 'C:\\Users\\HU\\Desktop\\aimappcom'
def comp_del(com_filename,orgpath):
n = 0
for fpath,fdir,ffile in os.walk(aimPath):
while n < len(ffile):
if com_filename == ffile[n]:
(aimPath + '\\' + ffile[n])
print('update_file--------' + orgpath + '\\' + ffile[n] + '\n')
n = n + 1
def mov_file(ndfile,edfile,fpos):
shutil.move(ndfile + '\\' + fpos,edfile)
for i,j,k in os.walk(filePath):
if "appcom" in i:
filedir = eval(repr(i).replace('\\', '\\\\'))
pos = 0
while pos < len(k):
comp_del(k[pos],filedir)
mov_file(filedir,aimPath,k[pos])
pos = pos + 1
二、解釋
1.os.walk函數
輪巡原文件夾,獲取目錄及文件名
2.eval(repr(i).replace('\\', '\\\\'))
因為python中‘\’為轉義符,所以要用‘\\\\’來表示雙斜杠
3.comp_del函數
復制之前先和目標文件夾內的文件比對:if com_filename == ffile[n]
如果文件名一樣就刪除:os.remove
4.mov_file函數
將新版本的文件移入:mov_file
