- 在线时间
- 477 小时
- 最后登录
- 2025-12-17
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7772 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2916
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1169
- 主题
- 1184
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
1 W( R# j; D: X5 N" l例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])0 J4 T! M2 \& l8 i
复制代码- # 删除所有注释
! c, K2 Z6 ?3 F5 h* i- y - def del_comm(file:str,line_comm:str,blok_comm:list[str]):
: F. p) S/ q( l- T' B, o3 M\" A - text=""
4 I8 K) j* h: F( o8 ^# h# p( X5 j - try:0 X9 b$ R* V6 J
- with open(file,encoding="utf-8") as f:3 |7 y$ q- ~. u2 b3 V: g: V' _
- lines=f.readlines()4 _, ]\" F( N, I, Q0 z x5 E+ p
- except Exception as e:
+ C; a+ {, k$ P3 u% R - print("decode failed",file)
; N( Q7 j8 @+ B) H# q8 V - return* g( z+ F S8 I1 N! @8 v. e( d
- for i in range(len(lines)):
/ d6 X8 ?* ^! F' c. f - index=lines[i].find(line_comm)
1 V2 x6 r9 ~0 S, S$ S - if(index>=0):( s8 e% B! X3 H! x7 m
- lstr=lines[i][:index]5 g$ n( V1 T5 c7 [2 G8 q
- else:
$ [1 m2 K, x, U1 g - lstr=lines[i].rstrip()1 m8 f7 j8 K) b3 s1 w: L e& C
- if(len(lstr.strip())>0):* M' F U3 U' q1 w% K l
- text+=lstr+'\n'
' {2 ?$ ~# i8 i# \* r - elif(text[-2:]=='\\\n'):* Q& k6 i2 `. y
- text+='\n'; i7 D/ ^9 b% g* K- g
- index_start=0
( l! }+ h4 U4 H, T& S/ D! c - text_out=""
1 k9 ~- R' i9 j - while True:
- A; E' p0 K$ C' k - index=text.find(blok_comm[0],index_start)( w3 g+ m L3 Z- x: S0 i
- index_end=text.find(blok_comm[1],index)
; v+ i+ w0 Y) a# {& m - if(index>=0 and index_end>index):
1 u9 R& i6 {\" i\" q8 e) [ - text_out+= text[index_start:index]' ^\" `, f0 N% P- t
- index_start=index_end+len(blok_comm[1])
: E0 T( f- ]9 n; V - else:
: E( M3 e5 ?- `* R* ? - text_out+=text[index_start:]
# ^. v( h. I, v7 ^% R7 H2 W - break
- l1 V+ H# j5 ^7 t6 f! j4 _ - with open(file,mode="w+",encoding="utf-8") as f:
. s& u7 _7 K2 R - f.write(text_out)( R/ t% _0 U k& w) g% |
- m1 f+ J0 u, W- @$ c4 O. f6 I0 y
复制代码 $ m4 n* \5 _/ V( e+ w$ k. c
|
zan
|