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压缩和解压缩zip文件
Feb 14 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
python计算圆周率pi的方法
Jul 11 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
python将秒数转化为时间格式的实例
Sep 16 Python
Python对excel文档的操作方法详解
Dec 10 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
python如何运行js语句
Sep 09 Python
Django vue前后端分离整合过程解析
Nov 20 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
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
php 中的closure用法详解
2017/06/12 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript修改css样式style
2008/04/15 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
javascript给span标签赋值的方法
2015/11/26 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
理解javascript正则表达式
2016/03/08 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
js定时器实例分享
2016/12/20 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
python中的全局变量用法分析
2015/06/09 Python
Python每天必学之bytes字节
2016/01/28 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
python中virtualenvwrapper安装与使用
2018/05/20 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
配置python的编程环境之Anaconda + VSCode的教程
2020/03/29 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
中学校庆方案
2014/03/17 职场文书
商场租赁意向书
2014/07/30 职场文书
2015年教学工作总结
2015/04/02 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL