批量自动替换源码文件中的自动添加内容或者注释 或者其他特殊内容

来源:互联网 发布:网络电视需要什么设备 编辑:程序博客网 时间:2024/05/16 03:07

在通过java 反编译工具对jar进行反编译的时候,会增加很多注释,如下图:

/*     */ import java.io.File;
/*     */ import java.sql.Connection;
/*     */ import java.sql.DatabaseMetaData;
/*     */ import java.sql.DriverManager;
/*     */ import java.sql.ResultSet;
/*     */ import java.sql.SQLException;
/*     */ import java.sql.Statement;
/*     */ import java.util.ArrayList;
/*     */ import sdet.fota.data.zhujin.DBReport;
/*     */ import sdet.fota.data.zhujin.TableReport;


如何去掉呢? 用python的正则表达式,非常方便的去除。

这个注释,就用regex=r'/\*.*?\*/'


考虑到通用性,以及文件目录等,需要替换目录文件。就采用传参的方式,进行处理:

if __name__ == "__main__":
    findString=r'/\*.*?\*/'
    pos=0
    filedir=sys.argv[1]
    if(os.path.isdir(filedir)):               
        for roots,dirs,files in os.walk(filedir):             
            for fileName in files:
                
                if fileName[-5:]=='.java':
                    fileName=roots+"\\"+fileName
                    print("fileName::",fileName)
                    main(fileName,pos,findString) 
    else:       
        main(filedir,pos,findString) 

详细的实现不解释了,直接上代码:

import re
import os,sys
def main(fileName,pos,findString):
    print("file Name:",fileName)
    print("Pos::",pos)
    print("findString:",findString)
    if os.path.isfile(fileName):
        newContextList=""
        needModifyFlg=False
        with open(fileName,mode="r",encoding="utf-8") as f:
            for context in f:                
                newContext,flag=getNewContext(context,pos,findString)
                newContextList=newContextList+newContext
                if flag:
                    needModifyFlg=flag
        if needModifyFlg:
           with  open(fileName,mode="w",encoding="utf-8") as f:
                f.write(newContextList)
                print("replace file::",fileName," OK")
        else:
            print("replace file::",fileName," Do not need")
        return True
    return False        
def getNewContext(context,pos,findString):
    regex=findString
    match=re.search(regex,context[pos:])
    if(match):
        matchString=match.group()
         
        newContext=context.replace(matchString,"",1)
        #print(matchString)
        #print(newContext)
        return newContext,True
    else:
        return context,False
        
if __name__ == "__main__":
    findString=r'/\*.*?\*/'
    pos=0
    filedir=sys.argv[1]
    if(os.path.isdir(filedir)):               
        for roots,dirs,files in os.walk(filedir):             
            for fileName in files:
                
                if fileName[-5:]=='.java':
                    fileName=roots+"\\"+fileName
                    print("fileName::",fileName)
                    main(fileName,pos,findString) 
    else:       
        main(filedir,pos,findString) 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 丈夫出差妻子与水电工 樱萌子被水电工侵犯中文字幕 在丈夫的面前侵犯入侵中文字幕 好妻子在线中文字幕 前田香织侵犯中文字幕 佐佐木明希上司中文字幕迅雷 医生d淫孕妇 公公一晚上要8次 公公现在就想要白关婷中文字幕 丈夫上司侵犯系列在线 义父犯美媳嫁樱花叶菜在线播放 儿子的妻子在线中文字幕云播 老公去世公公每天晚上抱着我睡 被水电工掠夺的妻子在线播放b 佐佐木明希大嫂中文字幕全集 善良的小妻子字幕 公公在我洗碗时在厨房要了我 大嫂被肉翻了天佐佐木明希1 教师蕾丝短裙中文字幕 瓜棚里和大嫂乱禽 强睡大嫂中文字 免费 佐佐木明希 房东中文字幕 与父亲干柴烈火 中文字幕丈夫不在 9大嫂被禽翻中文字幕 侵犯你的贞洁 中文字幕 年轻的妻子在线观中文字幕 大嫂被翻天了佐佐木b希中文7 美丽的大嫂中文字幕影迅雷下载 邻居的妻子中文字幕下载 神马电影院电影中文 神马电影院理论中文 女儿的朋友5中文神马电影院 97手机2019电影院专用版中文 厨房里进入朋友的老婆 中文版电影院 神马电影院 中文 儿子的妻子中文字幕 下载 樱桃中文版电影院 大富豪电影院韩国中文 老婆的闺蜜们喝醉了在家