QQ登录

只需要一步,快速开始

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

删除文件注释

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 17:15 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。$ c; S9 f) E" G6 w
例如C语言使用 // 和 /* */ 来注释,调用方式如下:
  1. del_comm("main.c","//",["/*","*/"])+ Z+ a$ F4 r. h( `* b9 y+ Y3 V' d
复制代码
  1. # 删除所有注释
    / i\" k5 Y! ^7 i' @\" T
  2. def del_comm(file:str,line_comm:str,blok_comm:list[str]):
    ; a4 ]\" u4 _; _) U  m$ V0 l# l7 d
  3.     text=""' i- R% I9 W! o: U$ e& _) Z+ a# S
  4.     try:6 z4 R$ [1 s. R6 ]5 _4 @; Q% \* f
  5.         with open(file,encoding="utf-8") as f:
    , Z* h( I2 E% n: ?7 ?
  6.             lines=f.readlines()
    ; w9 [3 A1 Q6 W3 c9 w) `! s2 s
  7.     except Exception as e:4 K6 k: ?' W( T7 ^
  8.         print("decode failed",file)\" S7 ?, h7 r6 u4 s& z0 @: q$ ?
  9.         return
    1 R* J- z. K  V3 K/ v
  10.     for i in range(len(lines)):
    / t0 e+ i! S+ |; B
  11.         index=lines[i].find(line_comm)' u0 t9 I5 t: a\" b) A0 y
  12.         if(index>=0):( x8 X! `) P6 {
  13.             lstr=lines[i][:index]1 B& |  I0 q% k
  14.         else:* v\" y; X& r7 M\" v, J
  15.             lstr=lines[i].rstrip()
    : [3 I9 z: {7 x& x
  16.         if(len(lstr.strip())>0):
    - W- W4 y$ H: G$ W) k
  17.             text+=lstr+'\n', t1 M0 L' l. i6 b* @' V- ?
  18.         elif(text[-2:]=='\\\n'):
    : z8 w  \5 A( C0 r) A7 M+ w6 R
  19.             text+='\n'1 D: w4 h5 V\" E
  20.     index_start=0( C7 H/ @# a( O! `! N/ E
  21.     text_out=""# @8 b) o\" F/ w8 l1 @9 z  Q\" A
  22.     while True:
    # H: }( {/ O% z$ k$ b9 \
  23.         index=text.find(blok_comm[0],index_start)- e4 s\" L( c/ s# ?  _
  24.         index_end=text.find(blok_comm[1],index)
    2 Z$ o; f8 ]' v' {  A
  25.         if(index>=0 and index_end>index):
    3 E9 z; D8 l2 j6 V
  26.             text_out+= text[index_start:index]0 N7 B6 \- n+ ?
  27.             index_start=index_end+len(blok_comm[1])6 k9 n\" U0 [2 i( g9 ]\" Q
  28.         else:% s$ Q( ~\" |! m) A& F
  29.             text_out+=text[index_start:]
    0 R6 x) O2 B9 O9 L/ n( {  F# V\" I
  30.             break$ o' {1 W4 I. e1 I: `\" p. d
  31.     with open(file,mode="w+",encoding="utf-8") as f:
    \" H4 o5 H0 {0 N
  32.         f.write(text_out)
    * F4 Z$ q2 A* u' X
  33.         
    5 Z) h9 y) T4 F: e1 l: }
复制代码

* D2 y( c) ]7 G# y# }8 C3 r' _6 D
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-19 16:16 , Processed in 1.665267 second(s), 50 queries .

回顶部