- 在线时间
- 479 小时
- 最后登录
- 2026-4-17
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7790 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2923
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
: Y* n2 k6 T3 k3 r# X例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
o2 s4 T. H# G0 Z1 p; ]4 `
复制代码- # 删除所有注释+ t! T# Q( Q; I' `7 J5 F
- def del_comm(file:str,line_comm:str,blok_comm:list[str]):
! |8 v' L2 s. B6 X9 k+ H, M3 Y) ?. y2 k - text=""
+ y; m; E3 X7 @\" l+ g/ _4 j$ t1 J* a& O - try:* {8 l3 S8 E. L) `+ M
- with open(file,encoding="utf-8") as f:0 O# m; {' e% X( g
- lines=f.readlines()
: h4 n9 c( M. `9 ?- j; m - except Exception as e:+ j* q5 _% x# h2 N
- print("decode failed",file)7 @# V+ F, J# ^- s
- return
: r& S6 L! b\" c8 n/ l* q8 V - for i in range(len(lines)):
& c. X9 }5 R! ]% v& D. X2 N - index=lines[i].find(line_comm)( z& y\" |- @& u+ {! e
- if(index>=0):9 {4 z3 b- t/ E, i) h
- lstr=lines[i][:index]
/ S, r- F/ K, f: m* I - else:
! d) @$ G0 J+ i0 q! k& v0 a( x - lstr=lines[i].rstrip()\" m* y9 V$ o5 l2 D9 m; g
- if(len(lstr.strip())>0):
O4 R9 c, K/ ]3 s7 |5 X$ P - text+=lstr+'\n'( d# C) f5 ]; B) [
- elif(text[-2:]=='\\\n'):
7 ]0 _- I& e3 c - text+='\n'
2 V: t6 B6 S5 V! G: c - index_start=04 f4 C6 A. d6 b2 N
- text_out=""2 m+ T1 }2 U0 F7 @: i. p% C- X
- while True: w# e0 w/ C! Y
- index=text.find(blok_comm[0],index_start)2 Z W0 R- F9 ~) U3 a0 s
- index_end=text.find(blok_comm[1],index)
. b% f. ]8 Y7 Z0 W* u; `\" e - if(index>=0 and index_end>index):
5 X3 T ~; R: v3 l/ h - text_out+= text[index_start:index]* ~& Q! x\" p4 J5 u; W
- index_start=index_end+len(blok_comm[1])( Z; s5 i! E7 Y9 X$ r3 H
- else:4 u6 d5 r( f9 p
- text_out+=text[index_start:]& p y6 s. ]4 _; H# x* T. F
- break
) k& T, S) n\" I$ i\" l, c* O! s - with open(file,mode="w+",encoding="utf-8") as f:8 m' z+ |7 z' e6 K
- f.write(text_out)# o8 K\" q+ `4 D' q
-
& X! u, W2 O$ c, F
复制代码 9 N; E0 d: C5 x4 r
|
zan
|