- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。, h+ l4 V6 P! Q6 A0 C! `" u
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
2 t+ h& q! \- U/ d
复制代码- # 删除所有注释- o& D, _* _6 @' Q( Y8 e& x
- def del_comm(file:str,line_comm:str,blok_comm:list[str]):
9 s6 y: v7 T7 H- z6 ^9 F - text=""
1 T) ?% \, @ s0 I% S - try:
: l8 C p+ E1 N4 r - with open(file,encoding="utf-8") as f:) E' M9 M6 [) A6 e: G9 }8 Z, Z n
- lines=f.readlines()
& \5 Q1 o& P; E3 k - except Exception as e:! v2 Y. i( a4 a' Q6 _
- print("decode failed",file)
; F r3 L, a6 f4 h - return; g. e- `- `( W+ M8 S& t/ k% F
- for i in range(len(lines)):
( d7 R7 b8 t( f, a' @# d) w% P - index=lines[i].find(line_comm)7 d8 t9 @- ]) M: c' X/ `
- if(index>=0):/ [\" a. k' w+ l) o5 M$ }4 L% e/ X
- lstr=lines[i][:index]& `/ u3 g1 Z+ X6 B+ l2 z
- else:& l! B/ ~4 N! K9 y! ^ i
- lstr=lines[i].rstrip(): C% Q- C; t\" u\" M' K
- if(len(lstr.strip())>0):) K5 O3 n% Q% k& [ y c
- text+=lstr+'\n'$ ~3 m. r% N& F. ?& D% ^
- elif(text[-2:]=='\\\n'):
2 N. n+ \# D$ F! e - text+='\n'
: A Q8 H8 y# K/ S\" Y- b; S$ r - index_start=07 D# L) t* F3 H, t$ r
- text_out=""
* c\" a! w. i& {/ Q - while True:8 ?( F, W- v+ U0 g8 z3 ^
- index=text.find(blok_comm[0],index_start)7 s) a* J9 Q' H9 p4 W: A$ b, ~. m
- index_end=text.find(blok_comm[1],index)
( y0 x! n/ n\" z- M7 P: e\" C% z - if(index>=0 and index_end>index):% u, E2 ?# Y$ ^7 T! U
- text_out+= text[index_start:index], ]$ }6 \6 n3 P7 B6 S
- index_start=index_end+len(blok_comm[1])
6 x4 O- w3 Y! K2 s\" s! ? - else:7 y d) N y. R& n7 L1 A
- text_out+=text[index_start:]
9 p# e8 t+ Q& B - break
7 I: ]4 f: |% b+ S V/ ~% a1 { - with open(file,mode="w+",encoding="utf-8") as f:
; Y2 z/ @& }) u! ?/ K( T( X C - f.write(text_out)! Z n0 z* |! X6 D1 w0 C9 Q
- ( ^, ]. }# ]& @& f2 I
复制代码
5 N4 D: w& U+ I ]. ?' E5 k |
zan
|