Python如何脚本过滤文件中的注释

确保对模块, 函数, 方法和行内注释使用正确的风格,Python中的注释有单行注释和多行注释。如果希望去除文件中所有注释,如何做呢?

Python中的注释:

Python中单行注释以 # 开头,例如:

# 这是一个注释
print("Hello, World!")

多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:

#!/usr/bin/python3
'''
这是多行注释,用三个单引号
这是多行注释,用三个单引号
这是多行注释,用三个单引号
'''
print("Hello, World!")

使用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
  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文件的注释,并生成拷贝与指定目的文件夹

实例扩展:

print("程序中常见的注释")
 
注意:此程序将会删除的,会在Demo注释末尾添加 YES,不会删除的 NO
 
# 这是第一种注释,'#'放在开头(YES)
 
ret = analysix(data)  # 这是第二种注释,'#'跟在某一个语句后面(NO)
 
"""
第三种注释
有时候需要注释掉某一整块东西的时候,使用这个
(YES)
"""
 
""" 第四种注释,这是函数或者类的说明(NO)"""
 
    # 这是第四种注释,'#'前面加了空格(YES)

到此这篇关于Python如何脚本过滤文件中的注释的文章就介绍到这了,更多相关Python脚本过滤文件中的注释方法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python xpath获取页面注释的方法

    版本信息: python 2.7.12 lxml 3.8.0 from lxml import etree html_str = """ <div id="box1">this from blog.csdn.net/lncxydjq , DO NOT COPY! <div id="box2">***** <!--can u get me, bitch?--> </div> </div

  • 详解python 注释、变量、类型

    1.注释 单行注释,使用#,#号后面的都是注射,例如 #我是单行注释 print("Hello Python world") 多行注释:开始和结束用三个单引号扩起来 ''' 我是多行注释 我是多行注释 我是多行注释 '''print("Hello Python world") 多行注释:开始和结束用三个双引号扩起来 """ 我是多行注释 我是多行注释 我是多行注释 """ print("Hello

  • python代码如何注释

    注释 注释就是对代码的解释和说明.目的是为了让别人和自己很容易看懂.为了让别人一看就知道这段代码是做什么用的.正确的程序注释一般包括序言性注释和功能性注释.序言性注释的主要内容包括模块的接口.数据的描述和模块的功能.模块的功能性注释的主要内容包括程序段的功能.语句的功能和数据的状态. 注释的分类 1.单行注释 以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用 #我是注释,可以在这里写一下功能说明之类 print("我上面一行是对我的注释") 2.多行注释 多行

  • 浅析Python 引号、注释、字符串

    Python3.6.3    json==2.0.9    win10.0.17134 字符串 1.不可变类型,可迭代对象,有序(可索引.切片) 2. 用引号引起来表示(见 引号) 3.内部 `\` 表示转义,引号前面加 `r` 禁用转义 注释 1.只有`#`后面的真的是注释,不会被解释器运行 1.# 与内容之间至少一个空格 2.注释一般放在被注释代码的上面 3.如果注释用在同行代码结尾,#与代码之间至少空2个空格 2.三引号(三对单/双引号)也被用来当做多行注释(见 引号3.) 引号 1.单双

  • 浅谈Python脚本开头及导包注释自动添加方法

    1.开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定 #!/usr/bin/python 是用来说明脚本语言是python的 是要用/usr/bin下面的程序(工具)python,这个解释器,来解释python脚本,来运行python脚本的. #!/usr/bin/python:是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器: #!/usr/bin/env python(推荐):这种用法是为了防止操作系

  • Python如何脚本过滤文件中的注释

    确保对模块, 函数, 方法和行内注释使用正确的风格,Python中的注释有单行注释和多行注释.如果希望去除文件中所有注释,如何做呢? Python中的注释: Python中单行注释以 # 开头,例如: # 这是一个注释 print("Hello, World!") 多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如: #!/usr/bin/python3 ''' 这是多行注释,用三个单引号 这是多行注释,用三个单引号 这是多行注释,用

  • Python统计python文件中代码,注释及空白对应的行数示例【测试可用】

    本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数.分享给大家供大家参考,具体如下: 其实代码和空白行很好统计,难点是注释行 python中的注释分为以#开头的单行注释 或者以'''开头以'''结尾 或以"""开头以"""结尾的文档注释,如: ''' hello world ''' 和 ''' hello world''' 思路是用is_comment记录是否存在多行注释,如果不存在,则判断当前行是否以'''开头,是则

  • Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import os import sys import time pdfs = (pdfs for pdfs in os.listdir('.') if pdfs.endswith('.pdf')) for pdf1 in pdfs: pdf = pdf1.replace(' ', '_').replace('-

  • python实现从pdf文件中提取文本,并自动翻译的方法

    针对Python 3.5.2 测试 首先安装两个包: $ pip install googletrans $ pip install pdfminer3k googletrans会提供一个命令translate,这个命令会调用google translate api执行自动翻译: pdfminer3k会提供一个工具脚本pdf2txt.py: $ pdf2txt.py xxx.pdf 从stackoverflow搜索到可以去除页眉和页脚的命令(强烈推荐): 使用Ubuntu提供的pdftotext

  • Python实现将json文件中向量写入Excel的方法

    本文实例讲述了Python实现将json文件中向量写入Excel的方法.分享给大家供大家参考,具体如下: 有一个需要是将已经向量化的页面的数据中的向量写入Excel中用于展示,工作很简单,这里简单复习一下Excel文件写的工作,试验中使用的json文件内容如下: 复制代码 代码如下: [ {"vector": [0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0

  • python 在某.py文件中调用其他.py内的函数的方法

    假设名为A.py的文件需要调用B.py文件内的C(x,y)函数 假如在同一目录下,则只需 import B if __name__ == "__main__": B.C(x,y) 若只需调用单个函数,也可以 from B import C if __name__ == "__main__": C(x,y) 若A.py和B.py位于不同的目录下,可以用以下方法 (假设B.py位于D盘的根目录下) 1.引用所在路径 import sys sys.path.append(

  • python实现读取excel文件中所有sheet操作示例

    本文实例讲述了python实现读取excel文件中所有sheet操作.分享给大家供大家参考,具体如下: 表格是这样的 实现把此文件所有sheet中 标识为1 的行,取出来,存入一个字典.所有行组成一个列表. # -*- coding: utf-8 -*- from openpyxl import load_workbook def get_data_from_excel(excel_dir):#读取excel,取出所有sheet要执行的接口信息,返回列表 work_book = load_wor

  • python将txt等文件中的数据读为numpy数组的方法

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为list并转化为numpy数组 import numpy as np file = open('filename.txt') val_list = file.readlines() lists =[] for string in val_list: string = string.split('\t',3

  • Python实现读取txt文件中的数据并绘制出图形操作示例

    本文实例讲述了Python实现读取txt文件中的数据并绘制出图形操作.分享给大家供大家参考,具体如下: 下面的是某一文本文件中的数据. 6.1101,17.592 5.5277,9.1302 8.5186,13.662 7.0032,11.854 5.8598,6.8233 8.3829,11.886 7.4764,4.3483 8.5781,12 6.4862,6.5987 5.0546,3.8166 5.7107,3.2522 14.164,15.505 5.734,3.1551 8.408

  • python 实现一次性在文件中写入多行的方法

    将要写入的内容 构造 进一个list 中,使用writelines()方法 一次性写入. file_w.writelines(list) file_w.flush() file.close() 以上这篇python 实现一次性在文件中写入多行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐