下面为大家分享一篇将python代码和注释分离的方法,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧
python的注释方式和C语言、C++、java有所不同
python语言中,使用‘#’ 来进行注释,其次还有使用 三个引号来进行注释
本文的程序将把 python 中 使用‘#’ 号 好 三个引号的注释分离出来, 当然也能再次合并回去
有需求的小伙伴可以来围观了
立即学习“Python免费学习笔记(深入)”;
#!/usr/bin/python#coding=utf-8import osimport sysreload(sys)sys.setdefaultencoding('utf-8')class Comment_Filter:#初始化参数def __init__(self):self.file=Noneself.commentfile=Noneself.noncommentline=Noneself.resotrefile=Noneself.Commentline=[]self.NonCommentline=[]self.globalcomment=0#判断是不是注释行def is_Comment_Line(self,line,i):if i > 2 and line.startswith("#"):return 1if line.startswith("'''") and self.globalcomment==1:self.globalcomment=0return 1if line.startswith("'''") and self.globalcomment==0:self.globalcomment=1return 1return 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" % filenameself.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_nameself.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 = 0while self.file != None:line = self.file.readline()i +=1if 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()breakif 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_pide_filter=Comment_Filter()my_file_pide_filter.run()
登录后复制
本程序已知问题, 不能处理 空格之后在以‘#’ 开头的注释,所有的注释行,必须是顶格写的
以后有时间的话,再重新写一版完整的吧
相关推荐:
Python针对给定字符串求解所有子序列是否为回文序列的方法
以上就是将python代码和注释分离的方法_python的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2263486.html