- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。& t2 V3 ?) L; C+ f3 W
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
3 Z- L\" E; [: ]4 y
复制代码- # 删除所有注释2 }9 p' K7 l$ Y6 {2 `
- def del_comm(file:str,line_comm:str,blok_comm:list[str]):
* m: j1 y9 ^\" Q* @: W - text="" A# _8 R) y0 h) ?( Z' R5 d
- try:
2 h1 S4 h* x+ p9 O\" n9 z, v - with open(file,encoding="utf-8") as f:
* w l4 S7 @) c0 r - lines=f.readlines()
5 \/ o% E7 Y% ?: V- z/ B5 ? - except Exception as e:
- |, w. v1 e& }7 a j - print("decode failed",file)' X( {; x9 t/ A7 }( L
- return
; E1 H7 S3 P4 k- t9 F& F - for i in range(len(lines)):
9 ^: h. B# y' c& D\" G1 @; d+ n0 X - index=lines[i].find(line_comm)
6 G. p\" B\" I5 c# V+ ]6 W9 U\" h - if(index>=0):
$ h- W# p8 H8 f - lstr=lines[i][:index]
0 z\" C8 l% ~4 ~3 p% R/ { - else:
2 _/ I1 d! x5 Z% P+ n: m$ b - lstr=lines[i].rstrip()
4 E* k q: z+ ]8 R8 @ - if(len(lstr.strip())>0):1 ^# M; {4 G6 R3 B
- text+=lstr+'\n'9 h* F' p8 k8 p2 X
- elif(text[-2:]=='\\\n'):. U o* h+ I- c
- text+='\n'
& H8 q6 P$ V7 G\" G - index_start=0
3 k/ S\" Q t- F0 Q - text_out="", @) _. P) D+ B' T4 R, P/ A
- while True:& O- }. O t0 `9 {) s7 ]0 Q2 Z
- index=text.find(blok_comm[0],index_start)
0 i0 t- @- t2 _- `. p- ?2 B) B- l. @ - index_end=text.find(blok_comm[1],index)
1 n# n3 e0 ^( i5 D - if(index>=0 and index_end>index):$ n1 b! I/ {* I8 |; s* k\" p/ y
- text_out+= text[index_start:index]\" r. J+ q\" Y5 h
- index_start=index_end+len(blok_comm[1])( V& y: I$ a3 j6 w4 f
- else:1 y' {) `( f\" n0 e- s& x! b& H
- text_out+=text[index_start:]
7 G7 |( |$ W( Y/ n; B/ D - break
. r% H2 e% g! W6 q$ o+ k' c/ E - with open(file,mode="w+",encoding="utf-8") as f:
! l- j3 \2 u9 A\" z1 J6 Y - f.write(text_out)3 u4 F1 R4 a6 @& t# @
- 3 z- a% c, R! N6 `5 W2 x
复制代码 7 ?( W1 ^( m( q) x# l1 J" T
|
zan
|