Python文件去除注释的方法


Posted in Python onMay 25, 2015

本文实例讲述了Python文件去除注释的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python 
# -*- coding: GBK -*- 
#writer:xmnathan 
#py文件去注释 
import re 
import os 
import ConfigParser 
Python='CleanNote' 
def ReadIni(path,section,option):#文件路径,章节,关键词 
  #读取ini
  cf=ConfigParser.ConfigParser() 
  cf.read(path) 
  value=cf.get(section,option)#如果用getint()则直接读取该数据类型为整数 
  return value 
def IsPassLine(strLine): 
  #是否是可以忽略的行 
  #可忽略行的正则表达式列表 
  RegularExpressions=["""/'.*#.*/'""","""/".*#.*/"""", 
            """/'/'/'.*#.*/'/'/'""","""/"/"/".*#.*/"/"/""""]
  for One in RegularExpressions: 
    zz=re.compile(One) 
    if re.search(zz,strLine)==None: 
      continue 
    else: 
      return True#有匹配 则忽略 
    return False 
def ReadFile(FileName): 
  #读取并处理文件 
  fobj=open(FileName,'r') 
  AllLines=fobj.readlines() 
  fobj.close() 
  NewStr='' 
  LogStr='/n%20s/n'%(FileName.split('//')[-1])#输出的日志 
  nline=0 
  for eachiline in AllLines: 
    index=eachline.find('#')#获取带注释句‘#'的位置索引 
    if index==-1 or nline<3 or IsPassLine(eachline): 
      if eachiline.strip()!='':#排除纯空的行 
        NewStr=NewStr+eachiline 
    else: 
      if index!=0: 
        NewStr=NewStr+eachiline[:index]+'/n'#截取后面的注释部分 
        LogStr+="ChangeLine: %s/t%s"%(nline,eachline[index:]) 
    nline+=1 
  return NewStr,LogStr 
def MakeCleanFile(SrcPath,DescPath,FileList): 
  fLog=open(DescPath+'//'+'CleanNoteLog.txt','w') 
  for File in FileList: 
    curStr,LogStr=ReadFile(SrcPath+'//'+File) 
    fNew=open(DescPath+'//'+File,'w') 
    fNew=write(curStr) 
    fNew.close() 
    fLog.write(LogStr) 
  fLog.close() 
def Main(): 
  #从ini获取源文件夹及目标文件夹路径 
  IniPath=os.getcwd()+'//'+PtName+'.ini' 
  SrcPath=ReadIni(IniPath,PyName,'SrcPath')#源文件夹 
  DescPath=ReadIni(IniPath,PyName,'DescPath')#目的文件夹 
  #如果目的文件夹不存在,创建之 
  if not os.path.exists(DescPath): 
    os.makedirs(DescPath) 
  FileList=[] 
  for files in os.walk(SrcPath): 
    for FileName in files[2]: 
      if FileName.split('.')[-1]=='py': 
        FileList.append(FileName) 
  MakeCleanFile(SrcPath,DescPath,FileList) 
if __name__=='__main__': 
  Main() 
  print '>>>End<<<' 
  os.system('pause')

ps:配置文件CleanNote.ini的格式

[CleanNote] 
SrcPath=E:/test 
DescPath=E:/test/newfiles

 
批量去除指定源文件夹中的py文件的注释,并生成拷贝与指定目的文件夹

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
浅谈python中set使用
Jun 30 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
python在每个字符后添加空格的实例
May 07 Python
Python应用库大全总结
May 30 Python
Python之两种模式的生产者消费者模型详解
Oct 26 Python
django中使用事务及接入支付宝支付功能
Sep 15 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
Python基于numpy模块实现回归预测
May 14 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
python框架flask入门之路由及简单实现方法
Jun 07 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
python提取页面内url列表的方法
May 25 #Python
python实现批量改文件名称的方法
May 25 #Python
python基于右递归解决八皇后问题的方法
May 25 #Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 #Python
Python输出9*9乘法表的方法
May 25 #Python
Python批量重命名同一文件夹下文件的方法
May 25 #Python
Python实现豆瓣图片下载的方法
May 25 #Python
You might like
PHP读取xml方法介绍
2013/01/12 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
smarty半小时快速上手入门教程
2014/10/27 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
原生js实现图片轮播特效
2015/12/18 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
vue实现文字加密功能
2019/09/27 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
python封装对象实现时间效果
2020/04/23 Python
python自动化生成IOS的图标
2018/11/13 Python
Django框架封装外部函数示例
2019/05/28 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
python实现IOU计算案例
2020/04/12 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
用Python进行websocket接口测试
2020/10/16 Python
python入门教程之基本算术运算符
2020/11/13 Python
Python eval函数原理及用法解析
2020/11/14 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
ktv收银员岗位职责
2013/12/16 职场文书
即兴演讲稿
2014/01/04 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
电子信息工程自荐信
2014/05/26 职场文书
公务员上班玩游戏检讨书
2014/09/17 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
《合作意向书》怎么写?
2019/08/20 职场文书
Python  lambda匿名函数和三元运算符
2022/04/19 Python