首页 > 编程 > Python > 正文

将python代码和注释分离的方法

2020-02-22 23:48:11
字体:
来源:转载
供稿:网友

python的注释方式和C语言、C++、java有所不同

python语言中,使用‘#' 来进行注释,其次还有使用 三个引号来进行注释

本文的程序将把 python 中 使用‘#' 号 好 三个引号的注释分离出来, 当然也能再次合并回去

有需求的小伙伴可以来围观了

#!/usr/bin/python#coding=utf-8import osimport sysreload(sys)sys.setdefaultencoding('utf-8')class Comment_Filter:	#初始化参数	def __init__(self):		self.file=None		self.commentfile=None		self.noncommentline=None		self.resotrefile=None		self.Commentline=[]		self.NonCommentline=[]		self.globalcomment=0	#判断是不是注释行	def is_Comment_Line(self,line,i):		if i > 2 and line.startswith("#"):			return 1		if line.startswith("'''") and self.globalcomment==1:			self.globalcomment=0			return 1		if line.startswith("'''") and self.globalcomment==0:			self.globalcomment=1			return 1		return self.globalcomment	#保存注释行	def save_Comment_Line(self,line,i):		self.Commentline.append({"line":line, "line_num":i})	#保存代码行	def save_NonComment_Line(self,line,i):		self.NonCommentline.append({"line":line, "line_num":i})	#恢复分离的文件	def restore_Org_File(self):		filename="output/"+self.filename+"_org.txt"		self.resotrefile=open(filename, "w+")		for i in range(1,len(self.Commentline)+len(self.NonCommentline)+1):			for commentline in self.Commentline:				if int(commentline['line_num'])==i:					self.resotrefile.write(commentline['line'])			for noncommentline in self.NonCommentline:				if int(noncommentline['line_num'])==i:					self.resotrefile.write(noncommentline['line'])		print "已输出到%s" % filename		self.resotrefile.close()	#主运行函数	def run(self):		if not os.path.exists("output"):			os.mkdir("output")		print "请输入要处理的文件名"		input_file_name=raw_input()		while len(input_file_name)>1:			print "处理文件为%s" % input_file_name			self.file=open(input_file_name)			self.filename=input_file_name.split(".")[1]			commentfilename="output/"+input_file_name.split(".")[1]+"_comment.txt"			self.commentfile=open(commentfilename,"w+")			noncommentlinename="output/"+input_file_name.split(".")[1]+"_code.txt"			self.noncommentline=open(noncommentlinename,"w+")			i = 0			while self.file != None:				line = self.file.readline()				i +=1				if not line:					print "文件已读完"					print "以下是注释内容"					for commentline in self.Commentline:						print "第%d行: %s" % (commentline['line_num'],commentline['line'])						self.commentfile.write(commentline['line'])										print "以下是代码内容"					for noncommentline in self.NonCommentline:						print "第%d行: %s" % (noncommentline['line_num'],noncommentline['line'])						self.noncommentline.write(noncommentline['line'])					restore=raw_input("是否恢复成原文件:")					if restore == 'Y':						self.restore_Org_File()					self.commentfile.close()					self.noncommentline.close()					break				if self.is_Comment_Line(line,i):					self.save_Comment_Line(line,i)				else:					self.save_NonComment_Line(line,i)			print "请输入文件名"			input_file_name=raw_input('if quit,please input Q:')			if input_file_name == 'Q':				breakif __name__ == '__main__':	print '''			***************************************** 			**  Welcome to Spider of baidutieba ** 			**   Created on 2017-05-03     ** 			**   @author: Jimy _Fengqi     ** 			*****************************************	'''	my_file_divide_filter=Comment_Filter()	my_file_divide_filter.run()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表