- 在线时间
- 479 小时
- 最后登录
- 2026-4-17
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7790 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2923
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。. V$ a0 `& K: q9 [' v4 k( ^/ X! |* b
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"]): Q* d3 P% w3 J& d/ k
复制代码- # 删除所有注释% Y& }' s: B3 z) [+ n9 c- S
- def del_comm(file:str,line_comm:str,blok_comm:list[str]):
- v% N# O1 p1 L5 o, Y - text="") m+ \, v* v0 G1 m: F- F
- try:& g8 S, y: c$ T, Q+ P& Q
- with open(file,encoding="utf-8") as f:
% S% w8 l i3 u0 w - lines=f.readlines()
2 j( ~% y# l8 V; Y( C - except Exception as e:
/ i; {( r3 m3 h1 A/ `, b/ e - print("decode failed",file)3 k& Q# I* q1 @\" ~/ X
- return5 _7 C: i8 K j4 d: A0 U
- for i in range(len(lines)):( |\" p$ u2 _( |& a1 J% u7 `
- index=lines[i].find(line_comm)0 N- N; v\" W1 u8 r0 c- [! D\" ^
- if(index>=0):$ G8 K: n9 l- ^( B/ b! d& F& E
- lstr=lines[i][:index]
# b# d: l5 o$ K' {6 H# K0 J! a - else: A) P! _- L, Z( r0 t
- lstr=lines[i].rstrip()7 N7 z: Q% \\" `( W! c5 i' A
- if(len(lstr.strip())>0):
- S8 @$ \+ p$ o( e( W- Y - text+=lstr+'\n'
% H: A6 ~, f0 q6 s: _1 x; L! ? - elif(text[-2:]=='\\\n'):( G0 d: p- A1 h: x
- text+='\n'
2 u$ G9 |4 m {8 O% c - index_start=08 l s/ z$ }0 O0 N
- text_out=""0 I7 s. _+ `$ N
- while True:
& P+ r+ B$ J0 W9 u - index=text.find(blok_comm[0],index_start)
3 R0 k, ?3 b; ?' \* v - index_end=text.find(blok_comm[1],index)5 f+ g9 @' b3 l) S @( N
- if(index>=0 and index_end>index):
# R, J5 `9 f5 g2 [7 Y - text_out+= text[index_start:index]
2 B: V% |! ^$ |8 H$ n - index_start=index_end+len(blok_comm[1]). }+ R, [% I# Q
- else:$ s( c; F( D' u, i7 D y
- text_out+=text[index_start:]8 p* `) ]1 s _) v
- break3 Y8 p\" L- V( Y
- with open(file,mode="w+",encoding="utf-8") as f:) }3 y# z) B9 e# C; t }
- f.write(text_out): k6 m- z; G+ F4 I2 c
- 3 X. F& P; o! j& F4 x% k% f8 E
复制代码 4 O) q. _, l1 u& C/ Q
|
zan
|