- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
8 U, a! `3 O5 z* Q7 f- @# M例如C语言使用 // 和 /* */ 来注释,调用方式如下:- del_comm("main.c","//",["/*","*/"])
9 k/ Q6 j6 P& R
复制代码- # 删除所有注释
n' B# v7 \0 b7 F! e' \ - def del_comm(file:str,line_comm:str,blok_comm:list[str]):; B' [) ]/ t% [: r
- text=""; n2 ?/ ^9 c* I+ m$ x) g( p
- try:
, [/ M& y. K\" {- g+ T - with open(file,encoding="utf-8") as f:
. K9 I' s! I. g3 d\" P3 s7 D$ E - lines=f.readlines(). ?8 `( u/ j$ g2 `$ x: H! L- c
- except Exception as e:
9 f0 Y+ p0 a\" Q9 `/ C0 N - print("decode failed",file)0 B6 k. q' q8 J4 F) m5 R: f: p
- return
# ~+ R' }( p t3 U7 b - for i in range(len(lines)):, k8 g, ?6 G, O
- index=lines[i].find(line_comm)+ H) R! N3 c3 c' }
- if(index>=0):1 g2 a$ U6 K% p
- lstr=lines[i][:index]& m5 @# T4 f4 k6 U2 X5 Z* _
- else:
/ l6 _4 p8 r# B# }: p7 D2 }/ j1 t, a! b - lstr=lines[i].rstrip()
' n9 p! s1 ^3 v' k4 g - if(len(lstr.strip())>0):* T. J/ I. A: F4 v6 _! H
- text+=lstr+'\n'$ [# D. d7 i: U2 C8 ~. T$ J
- elif(text[-2:]=='\\\n'):
6 c- V1 I. ^7 |' L+ Y7 N! H( q: D - text+='\n'9 v\" a\" Z/ w5 [) S7 i8 q4 x- i
- index_start=0
2 u4 G' O: r6 N7 D+ Q) S - text_out=""
8 [\" L8 @6 K# N3 R O1 F - while True:
- k\" p; R\" t# w$ u9 v1 ~ - index=text.find(blok_comm[0],index_start)
& S\" i- v8 e1 N8 l( Z - index_end=text.find(blok_comm[1],index)
# A\" ]* B2 X5 { - if(index>=0 and index_end>index):
% p s u. B. G& N\" C - text_out+= text[index_start:index]/ r& S$ q$ x: ?
- index_start=index_end+len(blok_comm[1])0 C1 U8 N d& D4 X9 A8 L8 N
- else:
3 `1 i6 k( _$ o5 I- @+ s0 I - text_out+=text[index_start:]
\" |7 ?7 t% O8 D# _ } - break; x% u+ i, T7 Y: ?+ s! L
- with open(file,mode="w+",encoding="utf-8") as f:
) h7 m' u) `! T# f& U) ?& J) ~ - f.write(text_out). v L+ D/ L& ^' u
- \" {3 m7 d8 s$ @% R8 {9 I. r# x
复制代码
# W/ e% w3 W( M4 S; S |
zan
|