QQ登录

只需要一步,快速开始

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

删除文件注释

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 17:15 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
) ^5 e2 j& ^9 Z& I例如C语言使用 // 和 /* */ 来注释,调用方式如下:
  1. del_comm("main.c","//",["/*","*/"])6 y1 |) W, J* J# i2 D5 b% I. m
复制代码
  1. # 删除所有注释' D4 I( {& F+ U- x
  2. def del_comm(file:str,line_comm:str,blok_comm:list[str]):
    . e- [$ g) L6 G1 l7 u' N/ I+ C
  3.     text=""\" U$ s) v* A# A9 a4 a
  4.     try:
    8 J# S7 L0 C0 v+ g$ u: Y
  5.         with open(file,encoding="utf-8") as f:
    ; ~9 u! W4 ^7 T( J- e6 D\" t) I0 d
  6.             lines=f.readlines()\" j. c: W! ]( w& v
  7.     except Exception as e:
    5 F+ O) K2 n3 f# q+ q, H! G  a
  8.         print("decode failed",file)
    ' v6 ~4 ~( q  Q4 j+ n
  9.         return3 j1 p7 }5 y: J  e
  10.     for i in range(len(lines)):: q! e; e$ w& t3 Q: L1 E3 t5 W
  11.         index=lines[i].find(line_comm)
    * N( Q% z* ]# {\" h
  12.         if(index>=0):
    % y/ G7 y  _; L
  13.             lstr=lines[i][:index]
    ( P+ H0 J$ s+ {6 n, ^
  14.         else:
    . |7 P1 j8 L! |( w7 m& z4 B7 O
  15.             lstr=lines[i].rstrip()
    7 I5 R( K7 Z5 C& N
  16.         if(len(lstr.strip())>0):
    ! }6 K2 O  }/ G7 {
  17.             text+=lstr+'\n'
    $ }' V4 M1 ~/ ?9 G/ [
  18.         elif(text[-2:]=='\\\n'):6 a6 h\" x- t  u0 p5 x3 T$ ]( f% D
  19.             text+='\n'( }# f8 F) ?  B! U; R1 X9 W
  20.     index_start=0
    9 G- Q' |/ L8 w3 A# S  o1 ^
  21.     text_out=""
    0 L' W1 |\" d/ E* N* L1 q
  22.     while True:- ]. ?7 q& ?\" _# K' N2 B. d/ H
  23.         index=text.find(blok_comm[0],index_start)
    ( J' z' \7 b' p! y( _0 {7 K. C
  24.         index_end=text.find(blok_comm[1],index)
    * K4 S8 ^2 q' S. A\" r) g
  25.         if(index>=0 and index_end>index):5 p/ {- t/ b\" ^/ a( r; k( Y
  26.             text_out+= text[index_start:index]
    8 q4 D\" F) z2 M) T
  27.             index_start=index_end+len(blok_comm[1])* i2 v# J/ |  {1 n
  28.         else:
    ) R. ?. T- o9 [( m, p3 a* Y+ P
  29.             text_out+=text[index_start:]2 }5 O0 ?9 |3 ?! z- M/ J\" n0 P% Q
  30.             break' i+ ]7 x2 {2 Z1 T' f- I. s2 O
  31.     with open(file,mode="w+",encoding="utf-8") as f:\" o' Y; o3 |1 _7 A; |) _
  32.         f.write(text_out)
    ; ?; [& N2 x* b) ?
  33.         2 Q6 X+ P/ Y! U7 n) |  l5 q
复制代码

5 |4 p+ q: o5 |) C9 ^  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-9-2 03:43 , Processed in 0.378328 second(s), 50 queries .

回顶部