QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 770|回复: 0
打印 上一主题 下一主题

删除文件注释

[复制链接]
字体大小: 正常 放大

1171

主题

4

听众

2749

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 17:15 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。% T5 e$ g+ _5 p6 ^5 Y, U8 _! C8 V( X' M
例如C语言使用 // 和 /* */ 来注释,调用方式如下:
  1. del_comm("main.c","//",["/*","*/"])
    + i! b- r7 H5 k: e$ q8 W2 o
复制代码
  1. # 删除所有注释1 v% ?  n$ h/ R# q
  2. def del_comm(file:str,line_comm:str,blok_comm:list[str]):
    , |# W) g. B1 ?
  3.     text="", J$ \2 i0 J$ P6 _3 E; z5 W+ O* l5 u
  4.     try:6 H% ?% c, G7 N6 q# V& j/ M3 q
  5.         with open(file,encoding="utf-8") as f:
    / J- Q3 `+ `% f% n- f4 {
  6.             lines=f.readlines()
    0 N- r4 r, W, e- |; S
  7.     except Exception as e:
    0 `4 S; M; {% B/ }( p+ }4 V
  8.         print("decode failed",file)% t8 z! P8 x  s5 F
  9.         return
    * _7 Q$ v; d, ]1 e: Z- s' [
  10.     for i in range(len(lines)):5 k9 h0 r6 T6 b8 m& x+ k
  11.         index=lines[i].find(line_comm)
    ) k7 m3 C+ b$ m6 A# F
  12.         if(index>=0):
    ( t  o# r) |! Z$ k- ?/ z
  13.             lstr=lines[i][:index]
    . N+ u+ Z6 e) z3 O/ Q$ y! D3 w
  14.         else:
    5 O/ I& D2 h& Z1 R& Z3 P$ H
  15.             lstr=lines[i].rstrip()1 F1 m2 [0 R/ k6 a9 o' p6 a) L0 h
  16.         if(len(lstr.strip())>0):' _0 t) ]- Z2 L& N) @
  17.             text+=lstr+'\n'
    8 T5 ~6 O  _7 i+ m: o# ?
  18.         elif(text[-2:]=='\\\n'):7 M& C: p7 W4 k. Z. `% ^
  19.             text+='\n'
    + @! s& C, C\" m+ p; a+ R, E
  20.     index_start=0( F  J3 |6 e6 ^
  21.     text_out=""! K* l7 N' G+ P! u4 \# i
  22.     while True:
    , N8 ^0 Q5 h/ L8 O, x( w8 d0 g7 G
  23.         index=text.find(blok_comm[0],index_start)2 i( Z' M9 Z8 N7 j& X9 |/ Y6 D; T( I( A
  24.         index_end=text.find(blok_comm[1],index)8 w5 _4 K; y/ r6 |
  25.         if(index>=0 and index_end>index):5 M\" T$ T3 X$ W: G- d
  26.             text_out+= text[index_start:index]# C* q% V: P% n( }( z. A0 |3 m
  27.             index_start=index_end+len(blok_comm[1]), Q# }' ^$ p' f1 e8 m3 S7 J) ]
  28.         else:1 K, ^+ p) M; X' j$ b
  29.             text_out+=text[index_start:]% M& S\" C* e: s- P
  30.             break
    # ?; \, o( |  z0 K
  31.     with open(file,mode="w+",encoding="utf-8") as f:6 Y. [; B! {4 u\" |- a# u: \: r9 d: K' i
  32.         f.write(text_out)
    4 Q\" {* A% E3 X( f$ G
  33.         8 ]; O4 O5 k8 p8 B( W
复制代码
  e( Q) O* m, ~) {- _
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-5-10 04:41 , Processed in 0.427359 second(s), 50 queries .

回顶部