- 在线时间
- 462 小时
- 最后登录
- 2025-4-26
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7236 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2749
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1156
- 主题
- 1171
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。) G$ S3 `) E$ [( T1 ^
例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])6 v K; ], c/ G, F, b8 J
复制代码- # 删除所有注释
/ \8 R+ M9 i* J6 ?7 o6 X - def del_comm(file:str,line_comm:str,blok_comm:list[str]):) q; V. k$ |- W0 D
- text=""
- i' C' }' B r5 s) ?. w# A - try:1 G* u' n( H2 p e' V$ _
- with open(file,encoding="utf-8") as f: r8 R6 s\" M$ h9 _1 P D
- lines=f.readlines()' L7 {9 D0 s# A- n V( h# ?
- except Exception as e:
5 W, L( \\" o% D; R. z8 r G - print("decode failed",file)
\" |5 } B- J- F2 E1 {\" @2 q' S - return
\" `' ?; E# b' K* P* A - for i in range(len(lines)):! R; a6 v# s3 w; G
- index=lines[i].find(line_comm)9 e8 Y! g5 s0 ?3 b* f3 G
- if(index>=0):: c$ `/ `+ i# Q8 l3 ^( m5 A
- lstr=lines[i][:index]
2 D$ X O% H, }# T9 o - else:
- L\" }& A$ J0 Y# ` - lstr=lines[i].rstrip()/ z' D0 f# b7 g\" N1 r% y
- if(len(lstr.strip())>0):
. G+ {0 S n0 R. t6 ^4 t; Z - text+=lstr+'\n'
6 N5 g) x. G& q6 }) i$ T - elif(text[-2:]=='\\\n'):8 u' V\" m\" K2 Z# ]3 L2 X
- text+='\n'
' z3 e, U# u- t# l! a9 e - index_start=0
$ o$ M4 c/ v, I* X' c - text_out=""+ V, N% G% l; @. H- O; t
- while True:* C+ g. H+ U' j! q
- index=text.find(blok_comm[0],index_start)
$ n1 m/ \. q\" T8 t1 @2 P - index_end=text.find(blok_comm[1],index)
0 Y0 C# y( R3 K. f. n* ~% H - if(index>=0 and index_end>index):
6 w4 ^: G- u# J8 V/ q - text_out+= text[index_start:index], t$ p; u7 m3 _; R% P7 A' J
- index_start=index_end+len(blok_comm[1])
% {5 r4 b; B\" S% A - else: Y! `- ?9 i\" a- `* X% r! _
- text_out+=text[index_start:]
' X4 B5 o7 b: ?6 l - break6 {6 Q8 j' u, o# c
- with open(file,mode="w+",encoding="utf-8") as f:
' l% @; G) }( `1 P$ g# g - f.write(text_out)1 p) B( c+ Y, i- `8 B4 B. R/ D
- % ?1 z; H* e z1 G1 A8 V, O
复制代码 ; g( H$ h3 [. t- u
|
zan
|