- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。$ c; S9 f) E" G6 w
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])+ Z+ a$ F4 r. h( `* b9 y+ Y3 V' d
复制代码- # 删除所有注释
/ i\" k5 Y! ^7 i' @\" T - def del_comm(file:str,line_comm:str,blok_comm:list[str]):
; a4 ]\" u4 _; _) U m$ V0 l# l7 d - text=""' i- R% I9 W! o: U$ e& _) Z+ a# S
- try:6 z4 R$ [1 s. R6 ]5 _4 @; Q% \* f
- with open(file,encoding="utf-8") as f:
, Z* h( I2 E% n: ?7 ? - lines=f.readlines()
; w9 [3 A1 Q6 W3 c9 w) `! s2 s - except Exception as e:4 K6 k: ?' W( T7 ^
- print("decode failed",file)\" S7 ?, h7 r6 u4 s& z0 @: q$ ?
- return
1 R* J- z. K V3 K/ v - for i in range(len(lines)):
/ t0 e+ i! S+ |; B - index=lines[i].find(line_comm)' u0 t9 I5 t: a\" b) A0 y
- if(index>=0):( x8 X! `) P6 {
- lstr=lines[i][:index]1 B& | I0 q% k
- else:* v\" y; X& r7 M\" v, J
- lstr=lines[i].rstrip()
: [3 I9 z: {7 x& x - if(len(lstr.strip())>0):
- W- W4 y$ H: G$ W) k - text+=lstr+'\n', t1 M0 L' l. i6 b* @' V- ?
- elif(text[-2:]=='\\\n'):
: z8 w \5 A( C0 r) A7 M+ w6 R - text+='\n'1 D: w4 h5 V\" E
- index_start=0( C7 H/ @# a( O! `! N/ E
- text_out=""# @8 b) o\" F/ w8 l1 @9 z Q\" A
- while True:
# H: }( {/ O% z$ k$ b9 \ - index=text.find(blok_comm[0],index_start)- e4 s\" L( c/ s# ? _
- index_end=text.find(blok_comm[1],index)
2 Z$ o; f8 ]' v' { A - if(index>=0 and index_end>index):
3 E9 z; D8 l2 j6 V - text_out+= text[index_start:index]0 N7 B6 \- n+ ?
- index_start=index_end+len(blok_comm[1])6 k9 n\" U0 [2 i( g9 ]\" Q
- else:% s$ Q( ~\" |! m) A& F
- text_out+=text[index_start:]
0 R6 x) O2 B9 O9 L/ n( { F# V\" I - break$ o' {1 W4 I. e1 I: `\" p. d
- with open(file,mode="w+",encoding="utf-8") as f:
\" H4 o5 H0 {0 N - f.write(text_out)
* F4 Z$ q2 A* u' X -
5 Z) h9 y) T4 F: e1 l: }
复制代码
* D2 y( c) ]7 G# y# }8 C3 r' _6 D |
zan
|