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获取文件版本信息、公司名和产品名的方法
Oct 05 Python
python下os模块强大的重命名方法renames详解
Mar 07 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
python爬取淘宝商品详情页数据
Feb 23 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
python 8种必备的gui库
Aug 27 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 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 图片水印类代码
2012/08/27 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
对python append 与浅拷贝的实例讲解
2018/05/04 Python
django模板结构优化的方法
2019/02/28 Python
Django之PopUp的具体实现方法
2019/08/31 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
html5移动端自适应布局的实现
2020/04/15 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
毕业生就业自荐信
2013/12/04 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
单位委托书
2014/10/15 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
2016开学第一课心得体会
2016/01/23 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python