- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
" H$ `7 P2 }# x% q例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
- l, Y0 J/ u6 Y5 {* J, D l; S
复制代码- # 删除所有注释
% ^\" {; `8 ?( f0 g5 E - def del_comm(file:str,line_comm:str,blok_comm:list[str]):
7 N$ ?& h* I% j/ Q - text=""
5 h! r2 `2 |& q& A - try:
1 \ j1 q' a+ V/ K. N! m5 l9 [ - with open(file,encoding="utf-8") as f:
3 ]\" c$ T! G6 C' z8 | - lines=f.readlines()
. P1 j\" ?' { Q% F - except Exception as e:; A5 V% {! }$ z0 E+ u
- print("decode failed",file)\" m* J# ?\" w% P
- return
\" }+ s% r, ?0 x: E: X9 ^) D - for i in range(len(lines)):1 J. |2 G6 `% H1 e7 p8 D6 C
- index=lines[i].find(line_comm)$ F! R' I) ^6 I+ m* G5 [
- if(index>=0):( S1 n4 ~6 L% g
- lstr=lines[i][:index] b: W* h( B, O- d. t. L( M
- else:# t2 A% ~; M4 W9 f& ?
- lstr=lines[i].rstrip()) n\" m* Q4 C- B8 t; U- Z
- if(len(lstr.strip())>0):9 |0 I0 a. M' b* l$ \
- text+=lstr+'\n'; a1 y$ Z+ @! H% |
- elif(text[-2:]=='\\\n'):8 ]+ i' A6 h\" b: ?8 l
- text+='\n'+ l4 O% Y4 j$ v: ~, o: j+ d
- index_start=0* D1 O7 F9 g/ G B* J
- text_out=""
0 x0 Q: i; r) g2 ? - while True:0 g, s+ O6 Q, X
- index=text.find(blok_comm[0],index_start)
1 w0 Z& r5 y( w2 [# C; p - index_end=text.find(blok_comm[1],index)
7 t( A. T, G7 H\" b0 Z - if(index>=0 and index_end>index):- m0 ^: ~1 Y G. r
- text_out+= text[index_start:index]; u- D/ m\" t3 G, y
- index_start=index_end+len(blok_comm[1])
9 {$ H/ G# t; O: h+ U; k3 k$ G# w - else:5 Q. h) _* ?$ }! ?+ b; y4 n
- text_out+=text[index_start:]
5 f: u\" Z' p) [; C% g - break
1 K* x2 { c- ?, L( V7 _, Z - with open(file,mode="w+",encoding="utf-8") as f:% i7 m+ z$ j\" B# J4 u9 U) h6 k: Z
- f.write(text_out)
- z\" @ d8 x3 V\" ~\" _( J3 e, R - 9 f$ U7 @- ` t0 o2 |# n* w) ^
复制代码 $ |$ i* Z9 L$ v i6 {4 @
|
zan
|