- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。. E# m- F$ ~8 n4 W
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
8 g1 A: W! C3 l\" ]- @: w/ E. W% q
复制代码- # 删除所有注释
; `) V o3 q2 \7 v - def del_comm(file:str,line_comm:str,blok_comm:list[str]):4 Q4 L% P2 i' V- v+ {
- text=""
/ ^* c\" G/ y/ e/ J9 S - try:
\" {7 x4 j) a+ t0 r\" @ - with open(file,encoding="utf-8") as f:
+ K! O, [/ c% d$ h. z - lines=f.readlines()
! y' P. S. i) |' i9 y! H - except Exception as e:- b1 T* G+ o. x# }6 D# M
- print("decode failed",file), c\" H5 {6 a) ^\" t6 o/ j1 z
- return$ _; ]& X% o5 c
- for i in range(len(lines)):
* J; I\" F! |$ W - index=lines[i].find(line_comm)( p* g6 o( K' d1 z) j; N9 S8 D
- if(index>=0):
' y0 _7 U& T& a D - lstr=lines[i][:index]7 N6 P, ~: {% a# N# J9 Q( U
- else:! J4 U% s; Y7 I2 {! e
- lstr=lines[i].rstrip()9 N- A, p( H0 C8 t) t
- if(len(lstr.strip())>0):9 C5 A6 }4 Z( F; N# ?
- text+=lstr+'\n'# w p) u8 v9 e\" {
- elif(text[-2:]=='\\\n'):! M2 n: `) L0 s7 ~# r$ h
- text+='\n'\" r/ v+ x: E: K3 v
- index_start=00 L- H/ ?( b: H
- text_out=""/ u1 h7 a: v. J! Q: y6 G
- while True:( g- @$ R$ x8 E6 C, L$ l- O9 \
- index=text.find(blok_comm[0],index_start)
! ]+ K: C$ E% X( o5 K. W! p - index_end=text.find(blok_comm[1],index)! T\" c8 T' ?5 \3 G& d
- if(index>=0 and index_end>index):: H: m; r4 f; k+ Q\" ~
- text_out+= text[index_start:index]
% ?7 M! w* M, E5 \& O - index_start=index_end+len(blok_comm[1])
; O6 h- E' ]! ~- s( W! B - else:. H0 S5 s; n2 }. Q4 U\" m. o3 ~
- text_out+=text[index_start:]8 P: u. ~, a3 G: j$ P! t. E
- break
! ?5 n- z# x1 l - with open(file,mode="w+",encoding="utf-8") as f:
8 d( P4 e8 v, q - f.write(text_out), x4 q: l* I$ N7 X\" A# n
- ( x% A* ?5 K, F; |! P
复制代码
2 g, O7 @4 y1 R6 S( [' n/ V0 t |
zan
|