- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。4 K% s8 ]/ p5 _% B7 ~, A
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
* I+ Q* U! @' B5 z1 y8 j
复制代码- # 删除所有注释% s* C/ L- U6 r2 o) M [1 Q
- def del_comm(file:str,line_comm:str,blok_comm:list[str]):
! p- E& K% P/ I2 B: S - text=""' u) n8 c, ?1 }2 q' K, R\" L
- try:4 |9 ~2 U* _# x1 u
- with open(file,encoding="utf-8") as f:# ?' K+ t+ D, `7 @5 \# k- F
- lines=f.readlines()
3 N# v2 C' [0 u, z' O0 ~/ r8 v0 n - except Exception as e:* N% h n$ j% w& a% b
- print("decode failed",file)
% P. D& U8 E3 T) ~( [3 w- H - return
, p' u* `4 y8 F$ ] - for i in range(len(lines)):
6 A% g1 d% J n - index=lines[i].find(line_comm)& E6 e( {5 y0 p; t
- if(index>=0):( ?3 c ~: Y' p6 I1 T\" X
- lstr=lines[i][:index]
7 @& p& r) E# ^/ s; c2 O3 u - else:( Y B6 M' t, Q' `/ p f9 K
- lstr=lines[i].rstrip()
0 |6 H+ ^ i3 J# |$ y* e - if(len(lstr.strip())>0):% H0 U% l5 y! S
- text+=lstr+'\n'+ [+ n( c\" l' Q7 t: M
- elif(text[-2:]=='\\\n'):
' p4 I( ] ^8 \. B - text+='\n'2 T Q) s& G4 r
- index_start=07 e5 F4 ` }2 X1 U+ P, L
- text_out=""
$ O$ Z+ W/ ], V% |+ q; f, ] - while True:1 F x- i- |0 ]) T3 w
- index=text.find(blok_comm[0],index_start). C) u7 l9 z! B! S6 a
- index_end=text.find(blok_comm[1],index)
; w3 ~% s2 N, u/ D1 ~ - if(index>=0 and index_end>index):& I5 M( H) ]% X( O/ J+ @
- text_out+= text[index_start:index]
- S' D# C: [4 i, v2 d; F - index_start=index_end+len(blok_comm[1])9 d8 o& |5 t+ C: P
- else:9 p/ \5 o7 ]3 g7 h2 }6 G5 R( F
- text_out+=text[index_start:]) ^. F9 G& `. ?. ]
- break, U: a8 R8 ~- Z* Y, X' p6 D' _
- with open(file,mode="w+",encoding="utf-8") as f:
) x1 f+ ?: \! E/ y/ a, t$ t# \ - f.write(text_out)
. L1 Q+ q/ N) E) [$ H3 z - 8 y/ y/ V* h- O
复制代码
9 M. u' v! c/ x/ T" |% t |
zan
|