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 10 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
python使用matplotlib绘制热图
Nov 07 Python
Python装饰器简单用法实例小结
Dec 03 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Python新手如何进行闭包时绑定变量操作
May 29 Python
Python 合并拼接字符串的方法
Jul 28 Python
pytorch实现线性回归以及多元回归
Apr 11 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带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
2017/05/03 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
javascript 写类方式之十
2009/07/05 Javascript
给事件响应函数传参数的四种方式小结
2013/12/05 Javascript
js 通用订单代码
2013/12/23 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
python获取txt文件词向量过程详解
2019/07/05 Python
python实现的config文件读写功能示例
2019/09/24 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
信息工程学院毕业生推荐信
2013/11/05 职场文书
妇科医生自荐信
2013/11/05 职场文书
给国外客户的邀请函
2014/01/30 职场文书
中学教师教育感言
2014/02/21 职场文书
委托书样本
2014/04/02 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
销售2014年度工作总结
2014/12/08 职场文书
市级三好学生评语
2014/12/29 职场文书
高考升学宴答谢词
2015/01/20 职场文书
大学生逃课检讨书
2015/05/04 职场文书