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之玩转字符串(1)
Sep 14 Python
Python中的高级函数map/reduce使用实例
Apr 13 Python
python压缩文件夹内所有文件为zip文件的方法
Jun 20 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
python3学生名片管理v2.0版
Nov 29 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python opencv摄像头的简单应用
Jun 06 Python
详解Python文件修改的两种方式
Aug 22 Python
Python解析json代码实例解析
Nov 25 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
python网络爬虫实现发送短信验证码的方法
Feb 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
2015/06/23 PHP
php多进程应用场景实例详解
2019/07/22 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
jquery dialog键盘事件代码
2010/08/01 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python之wxPython应用实例
2014/09/28 Python
python中使用mysql数据库详细介绍
2015/03/27 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
初任培训自我鉴定
2013/10/07 职场文书
大学生专科毕业生自我评价
2013/11/17 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
公民授权委托书
2014/10/15 职场文书