QQ登录

只需要一步,快速开始

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

删除文件注释

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

1186

主题

4

听众

2923

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 17:15 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
输入文件名,行注释标签,块注释标签,生成删除注释后的文件保存并覆盖原文件。
: Y* n2 k6 T3 k3 r# X例如C语言使用 // 和 /* */ 来注释,调用方式如下:
  1. del_comm("main.c","//",["/*","*/"])
      o2 s4 T. H# G0 Z1 p; ]4 `
复制代码
  1. # 删除所有注释+ t! T# Q( Q; I' `7 J5 F
  2. def del_comm(file:str,line_comm:str,blok_comm:list[str]):
    ! |8 v' L2 s. B6 X9 k+ H, M3 Y) ?. y2 k
  3.     text=""
    + y; m; E3 X7 @\" l+ g/ _4 j$ t1 J* a& O
  4.     try:* {8 l3 S8 E. L) `+ M
  5.         with open(file,encoding="utf-8") as f:0 O# m; {' e% X( g
  6.             lines=f.readlines()
    : h4 n9 c( M. `9 ?- j; m
  7.     except Exception as e:+ j* q5 _% x# h2 N
  8.         print("decode failed",file)7 @# V+ F, J# ^- s
  9.         return
    : r& S6 L! b\" c8 n/ l* q8 V
  10.     for i in range(len(lines)):
    & c. X9 }5 R! ]% v& D. X2 N
  11.         index=lines[i].find(line_comm)( z& y\" |- @& u+ {! e
  12.         if(index>=0):9 {4 z3 b- t/ E, i) h
  13.             lstr=lines[i][:index]
    / S, r- F/ K, f: m* I
  14.         else:
    ! d) @$ G0 J+ i0 q! k& v0 a( x
  15.             lstr=lines[i].rstrip()\" m* y9 V$ o5 l2 D9 m; g
  16.         if(len(lstr.strip())>0):
      O4 R9 c, K/ ]3 s7 |5 X$ P
  17.             text+=lstr+'\n'( d# C) f5 ]; B) [
  18.         elif(text[-2:]=='\\\n'):
    7 ]0 _- I& e3 c
  19.             text+='\n'
    2 V: t6 B6 S5 V! G: c
  20.     index_start=04 f4 C6 A. d6 b2 N
  21.     text_out=""2 m+ T1 }2 U0 F7 @: i. p% C- X
  22.     while True:  w# e0 w/ C! Y
  23.         index=text.find(blok_comm[0],index_start)2 Z  W0 R- F9 ~) U3 a0 s
  24.         index_end=text.find(blok_comm[1],index)
    . b% f. ]8 Y7 Z0 W* u; `\" e
  25.         if(index>=0 and index_end>index):
    5 X3 T  ~; R: v3 l/ h
  26.             text_out+= text[index_start:index]* ~& Q! x\" p4 J5 u; W
  27.             index_start=index_end+len(blok_comm[1])( Z; s5 i! E7 Y9 X$ r3 H
  28.         else:4 u6 d5 r( f9 p
  29.             text_out+=text[index_start:]& p  y6 s. ]4 _; H# x* T. F
  30.             break
    ) k& T, S) n\" I$ i\" l, c* O! s
  31.     with open(file,mode="w+",encoding="utf-8") as f:8 m' z+ |7 z' e6 K
  32.         f.write(text_out)# o8 K\" q+ `4 D' q
  33.         
    & X! u, W2 O$ c, F
复制代码
9 N; E0 d: C5 x4 r
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-4-20 12:49 , Processed in 0.463205 second(s), 51 queries .

回顶部