import sys def 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 bhasCCommentBegin while True: if not bhasCCommentBegin: index = lines[i].find("/*") if index != -1: bhasCCommentBegin = True index2 = lines[i].find("*/",index+2) if index2 != -1: lines[i]=lines[i][0:index]+lines[i][index2+2:-1] bhasCCommentBegin = False #continue look for comment else: lines[i]=lines[i][0:index] # only find "begin comment lines[i]+="\r\n" return -2 else: return 0 #not find else: index2=lines[i].find("*/") if index2 !=-1: bhasCCommentBegin = False lines[i]=lines[i][index2+2:-1] #continue look for comment else: return -1 #should delete this def RemoveComment(file): global bhasCCommentBegin f = open(file,"r") lines = f.readlines() leng =len(lines) i=0 while i<leng: ret = HandleCComment(lines,i) if ret == -1: if bhasCCommentBegin == False: print "There must be some wrong" del lines[i] i -= 1 leng -= 1 elif ret== 0: HandleCPlusPlusComment(lines,i) else: pass i+=1 Output(lines) bhasCCommentBegin = False def Output(lines): for line in lines: print line, if __name__== '__main__': RemoveComment(sys.argv[1])
时间: 2024-10-07 04:31:36