QQ登录

只需要一步,快速开始

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

删除文件注释

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 17:15 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。4 K% s8 ]/ p5 _% B7 ~, A
例如C语言使用 // 和 /* */ 来注释,调用方式如下:
  1. del_comm("main.c","//",["/*","*/"])
    * I+ Q* U! @' B5 z1 y8 j
复制代码
  1. # 删除所有注释% s* C/ L- U6 r2 o) M  [1 Q
  2. def del_comm(file:str,line_comm:str,blok_comm:list[str]):
    ! p- E& K% P/ I2 B: S
  3.     text=""' u) n8 c, ?1 }2 q' K, R\" L
  4.     try:4 |9 ~2 U* _# x1 u
  5.         with open(file,encoding="utf-8") as f:# ?' K+ t+ D, `7 @5 \# k- F
  6.             lines=f.readlines()
    3 N# v2 C' [0 u, z' O0 ~/ r8 v0 n
  7.     except Exception as e:* N% h  n$ j% w& a% b
  8.         print("decode failed",file)
    % P. D& U8 E3 T) ~( [3 w- H
  9.         return
    , p' u* `4 y8 F$ ]
  10.     for i in range(len(lines)):
    6 A% g1 d% J  n
  11.         index=lines[i].find(line_comm)& E6 e( {5 y0 p; t
  12.         if(index>=0):( ?3 c  ~: Y' p6 I1 T\" X
  13.             lstr=lines[i][:index]
    7 @& p& r) E# ^/ s; c2 O3 u
  14.         else:( Y  B6 M' t, Q' `/ p  f9 K
  15.             lstr=lines[i].rstrip()
    0 |6 H+ ^  i3 J# |$ y* e
  16.         if(len(lstr.strip())>0):% H0 U% l5 y! S
  17.             text+=lstr+'\n'+ [+ n( c\" l' Q7 t: M
  18.         elif(text[-2:]=='\\\n'):
    ' p4 I( ]  ^8 \. B
  19.             text+='\n'2 T  Q) s& G4 r
  20.     index_start=07 e5 F4 `  }2 X1 U+ P, L
  21.     text_out=""
    $ O$ Z+ W/ ], V% |+ q; f, ]
  22.     while True:1 F  x- i- |0 ]) T3 w
  23.         index=text.find(blok_comm[0],index_start). C) u7 l9 z! B! S6 a
  24.         index_end=text.find(blok_comm[1],index)
    ; w3 ~% s2 N, u/ D1 ~
  25.         if(index>=0 and index_end>index):& I5 M( H) ]% X( O/ J+ @
  26.             text_out+= text[index_start:index]
    - S' D# C: [4 i, v2 d; F
  27.             index_start=index_end+len(blok_comm[1])9 d8 o& |5 t+ C: P
  28.         else:9 p/ \5 o7 ]3 g7 h2 }6 G5 R( F
  29.             text_out+=text[index_start:]) ^. F9 G& `. ?. ]
  30.             break, U: a8 R8 ~- Z* Y, X' p6 D' _
  31.     with open(file,mode="w+",encoding="utf-8") as f:
    ) x1 f+ ?: \! E/ y/ a, t$ t# \
  32.         f.write(text_out)
    . L1 Q+ q/ N) E) [$ H3 z
  33.         8 y/ y/ V* h- O
复制代码

9 M. u' v! c/ x/ T" |% t
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, 2026-7-18 12:14 , Processed in 0.490789 second(s), 56 queries .

回顶部