- 在线时间
- 479 小时
- 最后登录
- 2026-4-17
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7790 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2923
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。% s% T: g" x+ p% U2 X3 T
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"]), T# ]. c6 Q\" L% d
复制代码- # 删除所有注释
2 v/ G) A0 a! r# f2 Y, Y - def del_comm(file:str,line_comm:str,blok_comm:list[str]): m. t4 I8 t( Z9 B4 d/ W5 {
- text=""0 ]* V) R) A\" a
- try:% k- q1 r: b0 c3 r
- with open(file,encoding="utf-8") as f:
- e, q/ V$ Q\" p9 F8 } - lines=f.readlines()5 N- x2 g, m/ ]4 @- X3 P4 R
- except Exception as e:8 v* |; J1 G' Z; C5 ?
- print("decode failed",file)5 i\" o& B% ^$ b5 _\" L
- return\" ]* K! j5 l# H
- for i in range(len(lines)):
( w5 P8 r7 Z\" I0 b$ Q( T5 x; y0 l - index=lines[i].find(line_comm)
3 h! G. M8 z5 e. o0 b\" h9 v; q - if(index>=0): Y8 R! R4 V0 a; @5 n& e3 C6 F
- lstr=lines[i][:index]
. c3 ]8 |# u3 S( B/ E9 L+ K - else:
' |! N. J; K& X, l - lstr=lines[i].rstrip()
3 _- w \& a6 V9 R7 M - if(len(lstr.strip())>0):
/ H1 U4 \# g8 m% G8 k! v2 L- Y - text+=lstr+'\n'
, ~8 M0 T8 s. `- _ ~7 ^2 ?1 A - elif(text[-2:]=='\\\n'):5 ~) ~8 G8 p0 q6 ?! C8 ~* F
- text+='\n'
4 D* a- l. b6 `$ c/ q) u - index_start=0
5 R9 U. U3 M. k - text_out=""\" Y. `* g$ R7 l3 C8 L
- while True: l# P1 w) e9 X* H
- index=text.find(blok_comm[0],index_start)+ ^0 y: |- o# N# t- ^
- index_end=text.find(blok_comm[1],index)
9 k- _. e+ G1 e8 f8 t( \ - if(index>=0 and index_end>index):
$ k+ `. s) S, ~. Z - text_out+= text[index_start:index]
+ S0 b$ S0 C( _5 u6 s - index_start=index_end+len(blok_comm[1]); ^ a\" g! F% s2 o
- else:' Z* i5 h\" ]8 B( V5 j6 D/ r6 \
- text_out+=text[index_start:]$ I/ Q6 x9 g( i/ p2 O7 S; h1 ?
- break! L* y* Z6 Y0 f\" `0 F5 i' z& }/ G# H! F
- with open(file,mode="w+",encoding="utf-8") as f:
' O4 [) f# z) O; N( { - f.write(text_out). e, J\" Q7 p6 S4 U T% H: J. o. T% e) z
- . u' ^/ M x. ? |/ f
复制代码
6 ^0 m4 A0 E3 Q |
zan
|