- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
$ P/ d# m; P0 q8 ~例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
1 E, [4 p$ l! c. D
复制代码- # 删除所有注释
7 A7 w d0 O0 E @ ] - def del_comm(file:str,line_comm:str,blok_comm:list[str]):0 b7 b, d' h\" Z5 t
- text=""# z\" E1 f) {8 Z8 B: ^+ k. j# }# @: n
- try:8 ?/ l* x Z, x d
- with open(file,encoding="utf-8") as f: U- f4 t6 _& S }3 \5 [- P
- lines=f.readlines(), T. ~3 {7 B' w3 q0 h/ g
- except Exception as e:
1 H; X7 S! O3 [& ?1 L4 a# x - print("decode failed",file) g# D1 x6 p' n+ D# a. f5 E
- return r G! k6 X' r$ I7 x4 d
- for i in range(len(lines)):2 H# Z' U1 T% m% @+ U S4 e, C
- index=lines[i].find(line_comm)\" B7 H- c+ E9 G2 N# L/ s3 ?' Q
- if(index>=0):
9 Y( {% w\" Y0 t; z' S6 P - lstr=lines[i][:index]
1 `6 O4 v! U% ]0 U# W5 d - else:
( I. t a\" A) d# L, W& L - lstr=lines[i].rstrip()
+ T3 v8 x7 z5 l2 P$ I - if(len(lstr.strip())>0):8 U: \# G5 k' V
- text+=lstr+'\n'
# J* ]% |# E! f - elif(text[-2:]=='\\\n'):
S) b9 f& Q, o; _5 k; G! X( X - text+='\n'
: K/ j* j6 o# R: o( n& A4 T - index_start=0
! r% u- z& t8 Q% s @* M - text_out=""
! {1 B! R2 p! ]4 I! H' t) p - while True:% |( p0 a1 W V6 I; Q) D3 x
- index=text.find(blok_comm[0],index_start). M$ X, u L2 S2 l
- index_end=text.find(blok_comm[1],index): I; Q A3 M# b! {
- if(index>=0 and index_end>index):
' _8 `4 E\" u# Y: L) ?\" x9 Q - text_out+= text[index_start:index]
0 w- z' O' U# X/ Y% B - index_start=index_end+len(blok_comm[1])- y0 R/ O( i8 n$ q% @
- else:' @2 g, i4 \/ o2 ?% D2 d
- text_out+=text[index_start:]
# y: E3 N) c4 n. @9 J1 i( Q - break6 T# F6 r* r- W* Z2 E
- with open(file,mode="w+",encoding="utf-8") as f:# J$ x% o\" w+ u
- f.write(text_out)
2 I* M0 X; n a8 T% v7 D - ( o+ B! g# {1 v2 k; V9 g$ A
复制代码 3 a, N0 s. s8 ^
|
zan
|