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获取文件ssdeep值的方法
Oct 05 Python
python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
Dec 31 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Python闭包执行时值的传递方式实例分析
Jun 04 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python制作动态字符图的实例
Jan 27 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python区块链实现简版工作量证明
May 25 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
Sony CFR 320 修复改造
2020/03/14 无线电
第六章 php目录与文件操作
2011/12/30 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
美国大尺码女装零售商:TORRID
2016/10/01 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
致长跑运动员广播稿
2014/01/31 职场文书
《在家里》教后反思
2014/03/01 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
保护野生动物倡议书
2014/05/16 职场文书
大学生求职自荐信范文
2015/03/04 职场文书
运输公司工作总结
2015/08/11 职场文书
经销商会议开幕词
2016/03/04 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL