Python檔案去除注釋的方法

來源:互聯網
上載者:User
本文執行個體講述了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):   #是否是可以忽略的行   #可忽略行的Regex列表   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程式設計有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.