- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
$ Q1 h5 Z* N) k例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"]): n& v. B7 L( X0 R, x7 V# J\" t
复制代码- # 删除所有注释
\" v; V [6 t: G - def del_comm(file:str,line_comm:str,blok_comm:list[str]):
# k\" Q) M% J/ B\" j% f& {7 K4 U - text=""
0 H5 E8 Z+ A* X- f - try:- d! s\" m+ ?7 H- Z0 ]' C3 b2 p/ e7 r
- with open(file,encoding="utf-8") as f:0 K; ]1 M, T6 R5 l\" n4 |( ^6 m
- lines=f.readlines()
# \( m\" i0 }! V' P: [$ r - except Exception as e:; r6 m. g/ h* @5 V
- print("decode failed",file)
! Y& @0 `& [; C* i3 r - return) K+ Q7 O9 L- y; t1 q
- for i in range(len(lines)):
+ y6 @% u) m0 Q7 i. c/ H, o1 E - index=lines[i].find(line_comm)
/ [5 X& Y( r* ~7 Z& t - if(index>=0):( `4 K! z8 o: @4 {5 H
- lstr=lines[i][:index]. S# a: ~% w- f( e
- else:
\" J$ {0 t& u J- r e - lstr=lines[i].rstrip()
( W; ]! I8 ~& p8 l' R - if(len(lstr.strip())>0):% H( j1 m) v' Y: C
- text+=lstr+'\n'
8 q0 C, G- w* I' W& ?- [ - elif(text[-2:]=='\\\n'):
0 z; D# W8 u- t4 i) z! [ - text+='\n'
6 |8 m+ ]! ?( o- s- N - index_start=0
}4 W3 m1 O; x( @- d; c+ _7 N* ~ - text_out=""
Z/ @+ Q2 T7 k: G: I, _ - while True:3 v9 _. H, W1 u, \
- index=text.find(blok_comm[0],index_start). ]$ V2 J( h3 Q, ]
- index_end=text.find(blok_comm[1],index)
* A# e4 u0 j) a7 a, P8 f - if(index>=0 and index_end>index):
; W* N) n: x: O\" p* q. y+ _ - text_out+= text[index_start:index]9 Q( ]/ }9 M6 @7 M! [0 S
- index_start=index_end+len(blok_comm[1])% c+ d2 x) b5 |' p/ E
- else:
: w0 J9 ?# o; @7 s7 g - text_out+=text[index_start:]/ z) o2 \) G% m; h) I
- break
+ M$ q. `* Z! x\" A - with open(file,mode="w+",encoding="utf-8") as f:. c9 L4 j, w5 K9 O2 T; W1 J
- f.write(text_out)- r8 S# x# {8 K
- # ^# d9 u; E$ M* |+ ^4 ?: M- |
复制代码
! ~) g: J2 C4 _ |
zan
|