Import Sysdef handlecpluspluscomment (lines,i): index = Lines[i].find ("//") if Index!=-1:lines[i]=lines[i][0:index] lines[i]+= "\ r \ n" def handleccomment (lines,i): Global bhasccommentbeginwhile true:if not bhasccommentbegin:index = lines [I].find ("/*") if index! = -1:bhasccommentbegin = Trueindex2 = Lines[i].find ("*/", index+2) if index2! = -1:lines[i]=lines[ I][0:index]+lines[i][index2+2:-1]bhasccommentbegin = False #continue look for Commentelse:lines[i]=lines[i][0:index] # only find "Begin commentlines[i]+=" \ r \ n "Return-2else:return 0 #not findelse:index2=lines[i].find (" */") if Index2!=-1: Bhasccommentbegin = falselines[i]=lines[i][index2+2:-1] #continue look for commentelse:return-1 #should delete thisdef R Emovecomment (file): Global bhasccommentbeginf = open (file, "r") lines = F.readlines () Leng =len (lines) I=0while I<leng: ret = handleccomment (lines,i) if ret = = -1:if Bhasccommentbegin = false:print "There must be some wrong" del lines[i]i-= 1 Leng-= 1elif ret== 0:handlecpluspluscomment (lines,i) Else:passi+=1output (lines) Bhasccommentbegin = Falsedef Output (lines): For line in Lines:print line,if __name__== ' __ Main__ ': Removecomment (sys.argv[1])
Python face test--remove comments from C + + source files