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中readline判断文件读取结束的方法
Nov 08 Python
Python中使用摄像头实现简单的延时摄影技术
Mar 27 Python
Python查询阿里巴巴关键字排名的方法
Jul 08 Python
简单了解python模块概念
Jan 11 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
用Python实现读写锁的示例代码
Nov 05 Python
Python装饰器基础概念与用法详解
Dec 22 Python
django admin组件使用方法详解
Jul 19 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 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
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
最好用的省市二级联动 原生js实现你值得拥有
2013/09/22 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
javascript中的面向对象
2017/03/30 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Python实现全角半角转换的方法
2014/08/18 Python
Python使用py2exe打包程序介绍
2014/11/20 Python
在Python中使用pngquant压缩png图片的教程
2015/04/09 Python
对Python中range()函数和list的比较
2018/04/19 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Django URL参数Template反向解析
2020/11/24 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
网站域名和主机:Domain.com
2019/04/01 全球购物
警示教育活动总结
2014/05/05 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
centos7安装mysql5.7经验记录
2022/05/02 Servers
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js