利用Python脚本过滤文件中注释的方法
利用Python脚本过滤文件中注释的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
确保对模块, 函数, 方法和行内注释使用正确的风格,Python中的注释有单行注释和多行注释。如果希望去除文件中所有注释,如何做呢?
Python中的注释:
Python中单行注释以 # 开头,例如::
#这是一个注释print("Hello,World!")
多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:
#!/usr/bin/python3'''这是多行注释,用三个单引号这是多行注释,用三个单引号这是多行注释,用三个单引号'''print("Hello,World!")
使用Python脚本快速去除文件中的注释:
#!/usr/bin/python#-*-coding:GBK-*-#writer:xmnathan#py文件去注释importreimportosimportConfigParserPython='CleanNote'defReadIni(path,section,option):#文件路径,章节,关键词#读取inicf=ConfigParser.ConfigParser()cf.read(path)value=cf.get(section,option)#如果用getint()则直接读取该数据类型为整数returnvaluedefIsPassLine(strLine):#是否是可以忽略的行#可忽略行的正则表达式列表RegularExpressions=["""/'.*#.*/'""","""/".*#.*/"""","""/'/'/'.*#.*/'/'/'""","""/"/"/".*#.*/"/"/""""]forOneinRegularExpressions:zz=re.compile(One)ifre.search(zz,strLine)==None:continueelse:returnTrue#有匹配则忽略returnFalsedefReadFile(FileName):#读取并处理文件fobj=open(FileName,'r')AllLines=fobj.readlines()fobj.close()NewStr=''LogStr='/n%20s/n'%(FileName.split('//')[-1])#输出的日志nline=0foreachilineinAllLines:index=eachline.find('#')#获取带注释句‘#'的位置索引ifindex==-1ornline<3orIsPassLine(eachline):ifeachiline.strip()!='':#排除纯空的行NewStr=NewStr+eachilineelse:ifindex!=0:NewStr=NewStr+eachiline[:index]+'/n'#截取后面的注释部分LogStr+="ChangeLine:%s/t%s"%(nline,eachline[index:])nline+=1returnNewStr,LogStrdefMakeCleanFile(SrcPath,DescPath,FileList):fLog=open(DescPath+'//'+'CleanNoteLog.txt','w')forFileinFileList:curStr,LogStr=ReadFile(SrcPath+'//'+File)fNew=open(DescPath+'//'+File,'w')fNew=write(curStr)fNew.close()fLog.write(LogStr)fLog.close()defMain():#从ini获取源文件夹及目标文件夹路径IniPath=os.getcwd()+'//'+PtName+'.ini'SrcPath=ReadIni(IniPath,PyName,'SrcPath')#源文件夹DescPath=ReadIni(IniPath,PyName,'DescPath')#目的文件夹#如果目的文件夹不存在,创建之ifnotos.path.exists(DescPath):os.makedirs(DescPath)FileList=[]forfilesinos.walk(SrcPath):forFileNameinfiles[2]:ifFileName.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:/testDescPath=E:/test/newfiles
批量去除指定源文件夹中的py文件的注释,并生成拷贝与指定目的文件夹
感谢各位的阅读!看完上述内容,你们对利用Python脚本过滤文件中注释的方法大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。