激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python刪除Java源文件中全部注釋的實現方法

Python刪除Java源文件中全部注釋的實現方法

2020-12-04 00:55CodeArhat Python

這篇文章主要介紹了Python刪除Java源文件中全部注釋的實現方法,涉及Python讀取文件、正則匹配、字符串查找、替換等相關操作技巧,需要的朋友可以參考下

本文實例講述了Python刪除Java源文件中全部注釋的實現方法。分享給大家供大家參考,具體如下:

同事想刪除一個Java項目中的全部注釋,讓我幫忙想想辦法。

沒找不到合適工具,就寫了這個腳本,遍歷指定目錄,查找*.java文件,刪除其中/* */之間,及// 至行末的內容。

(用之前要改改其中的路徑):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!D:\Python32
# 過濾JAVA程序中的注釋
# 如果字符串中有注釋符號的話會有問題。
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);

 

希望本文所述對大家Python程序設計有所幫助。

原文鏈接:http://blog.csdn.net/codearhat/article/details/6852483

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品一区二av18款 | 欧产日产国产精品v | 欧洲精品久久久 | 久久成人免费网 | 黄色毛片一级 | 亚洲第一成人在线视频 | 成人免费观看在线视频 | 国产精品99精品 | 九九福利视频 | 毛片小网站 | 天堂成人国产精品一区 | 一级黄色影院 | 斗破苍穹在线观看免费完整观看 | 日韩在线视频免费 | 免看黄大片aa | 欧美日韩在线免费观看 | 在线免费亚洲 | 九九热在线视频观看这里只有精品 | 综合国产在线 | 精品中文字幕久久久久四十五十骆 | 看毛片免费 | 肉文女配h | 特黄一区二区三区 | 精品一区二区三区免费看 | 亚洲午夜久久久精品一区二区三区 | 3级毛片 | 欧美成人aaaaaaaa免费 | 激情小说色 | 久久久久久久久浪潮精品 | 免费1级做55爰片l在线观看 | 国产91九色在线播放 | 人人做人人看 | xxxxxx免费| 国产精品成人亚洲一区二区 | 国产一区二区三区四 | 久久久综合 | 亚洲人成网站免费播放 | 天天草夜夜骑 | 销魂美女一区二区 | 97色在线观看免费视频 | 成人影片在线免费观看 |