- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
; f# Y& ]7 n) g1 X6 h6 h例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
0 V+ l0 \: [# a0 Y6 N* O- D
复制代码- # 删除所有注释
# x; e# K. A$ I2 Q S - def del_comm(file:str,line_comm:str,blok_comm:list[str]):0 d( V; H2 y3 T) J# Z
- text=""
6 _% F. |# F) ~ - try:
( J: J' W& i\" G0 D - with open(file,encoding="utf-8") as f:
4 D5 V) [& M! d1 m - lines=f.readlines()
1 v; V; T- f+ t\" ?- A0 t - except Exception as e:( \& f! B5 w: I0 e0 l
- print("decode failed",file)( M7 |. V' B$ V\" g3 q
- return
( [( T4 r\" S9 h, Q$ i% r - for i in range(len(lines)):
! r2 N2 T; d* a( [0 a - index=lines[i].find(line_comm)' N! ^( P7 `. m3 z1 W
- if(index>=0):
) ^4 Z3 Y9 M0 }) [8 @ - lstr=lines[i][:index]
/ |& z9 @( M' E, G' T; ` - else:
. u0 d5 u( s0 I6 d\" H8 x - lstr=lines[i].rstrip()
. D! j8 v4 F$ {8 C9 f' v - if(len(lstr.strip())>0):# ] _1 ?9 r8 N
- text+=lstr+'\n') X8 f9 _1 j1 X
- elif(text[-2:]=='\\\n'):
3 u- |4 ~& `1 W e% i8 u! x8 x - text+='\n'* X# R! P0 k+ s\" j4 k
- index_start=0
7 W/ ]$ S0 d2 V b7 ?1 l - text_out=""' L8 [* W- ] d& v
- while True:
/ Q) w, s* B8 z - index=text.find(blok_comm[0],index_start)
8 E\" Q5 u9 c' I' Q. f) G* P - index_end=text.find(blok_comm[1],index)
1 m0 G) o- x! ~) ?$ [0 ~ - if(index>=0 and index_end>index):
/ l+ P& @9 |+ q, w0 P/ l/ l - text_out+= text[index_start:index]
5 Z8 Q5 G6 Y& ~6 A3 A. u, m* y - index_start=index_end+len(blok_comm[1])
# d+ ^) r2 G# O# r% |5 E) N1 g1 f - else:
% y9 g; N* ?) I: Q6 t - text_out+=text[index_start:]! s, c1 n3 h- n& d2 A
- break
% o' F, c+ ^( _2 S1 D - with open(file,mode="w+",encoding="utf-8") as f:
) Q \) p! H: i. H! a5 O1 C' P - f.write(text_out)- Y3 q( _% D0 k9 ~8 n2 \
-
. x4 d; M\" B: u3 w8 i, ?* @
复制代码
" q2 V" @9 Q2 V) h+ `4 [- G |
zan
|