[python] +7z批量刪jar中的檔案
阿新 • • 發佈:2021-11-19
spring cloud的專案, 一打包就是幾百兆,上傳太費時了
使用thin jar的方案後,每個檔案都要點進去手動刪/BOOT-INF/lib
下的公用jar包,浪費時間和精力
7z可以直接刪zip檔案中的檔案,支援*匹配, 遞迴壓縮目錄
7z d xxx-source.jar yyy*.conf -r
寫個指令碼一秒搞定,太爽了
@@@build beautiful things, share happiness@@@import os import subprocess def remove_one_file_jars(file_name): subprocess.getoutput( f"7z d {file_name} a*.jar b*.jar c*.jar d*.jar e*.jar f*.jar g*.jar h*.jar i*.jar " f"j*.jar k*.jar l*.jar m*.jar n*.jar o*.jar p*.jar q*.jar r*.jar s*jar t*.jar u*.jar v*jar w*.jar x*.jar " f"z*.jar -r") dirs = subprocess.getoutput(f"7z l {file_name}") print(dirs) #列出zip檔案目錄 xxx = dirs.split("\n") for i in xxx: if '''BOOT-INF\lib''' in i: jar_file = i[i.index('BOOT-INF\lib') + len('BOOT-INF\lib') + 1:] if len(jar_file) > 0 and 'yunjar' not in jar_file: xx = subprocess.getoutput(f"7z d {file_name} {jar_file} -r") print(xx) if __name__ == '__main__': all_file = os.listdir("D:/jar") for one_file in all_file: remove_one_file_jars(one_file)