删除Java源文件中全部注释的Python脚本
2011-10-08 14:54
363 查看
同事想删除一个Java项目中的全部注释(坏
),让我帮忙想想办法。
没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容。
(用之前要改改其中的路径):
),让我帮忙想想办法。
没找不到合适工具,就写了这个脚本,遍历指定目录,查找*.java文件,删除其中/* */之间,及// 至行末的内容。
(用之前要改改其中的路径):
#!D:\Python32 # 过滤J***A程序中的注释 # 如果字符串中有注释符号的话会有问题。 import os import re import io # 改这个目录!!! top_dir = "E:\\java_comments_trim\\"; # 状态 S_INIT = 0; S_SLASH = 1; S_BLOCK_COMMENT = 2; S_BLOCK_COMMENT_DOT = 3; S_LINE_COMMENT = 4; S_STR = 5; S_STR_ESCAPE = 6; def trim_dir(path): print("目录:" + path); for root, dirs, files in os.walk(path): for name in files: trim_file(os.path.join(root, name)) #for name in dirs: #trim_dir(os.path.join(root, name)) def trim_file(path): print("文件:" + path); if re.match(".*java{1}quot;, path): print(" 处理"); else: print(" 忽略"); return; bak_file = path + ".bak"; os.rename(path, bak_file); fp_src = open(bak_file); fp_dst = open(path, 'w'); state = S_INIT; for line in fp_src.readlines(): for c in line: if state == S_INIT: if c == '/': state = S_SLASH; elif c == '"': state = S_STR; fp_dst.write(c); else: fp_dst.write(c); elif state == S_SLASH: if c == '*': state = S_BLOCK_COMMENT; elif c == '/': state = S_LINE_COMMENT; else: fp_dst.write('/'); fp_dst.write(c); elif state == S_BLOCK_COMMENT: if c == '*': state = S_BLOCK_COMMENT_DOT; elif state == S_BLOCK_COMMENT_DOT: if c == '/': state = S_INIT; else: state = S_BLOCK_COMMENT; elif state == S_LINE_COMMENT: if c == '\n': state = S_INIT; elif state == S_STR: if c == '\\': state = S_STR_ESCAPE; elif c == '"': state = S_INIT; fp_dst.write(c); elif state == S_STR_ESCAPE: # 这里未完全实现全部序列,如\oNNN \xHH \u1234 \U12345678,但没影响 state = S_STR; fp_dst.write(c); fp_src.close(); fp_dst.close(); trim_dir(top_dir);
相关文章推荐
- 删除c,c++,java源文件中全部注释的Python脚本
- Python删除Java源文件中全部注释的实现方法
- 删除某文件夹(可包含其他文件夹)中Java文件的注释(Python)
- java 网页版 找出删除你的微信好友(翻译修改自python脚本)
- 删除java文件内的注释的脚本工具类
- Java实现将目录下指定类型文件全部删除_FileFilter文件过滤
- Python 脚本 批量删除目录下文件的特定内容
- java脚本删除指定目录下的所有指定名称的文件夹
- Python Tricks(六)—— 删除一个可迭代序列中等于某值的全部元素
- 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
- 基于python的添加和删除安全组的脚本
- 人生第一份python脚本 ---- 遍历文件夹中文件,删除特定文件中的一行代码
- 用来删除菊花公司代码中大量无用的函数头部注释的python剃刀
- JAVA 调用python脚本的方法
- linux下脚本编译java,定时删除日志
- java调用python脚本
- 关于java运行python脚本
- Python删除Delphi临时文件的小脚本
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- 用python脚本批量删除Docker镜像