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


本文摘自php中文网,作者不言,侵删。

下面为大家分享一篇将python代码和注释分离的方法,具有很好的参考价值,希望对大家有所帮助。一起过来看看吧

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

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

#!/usr/bin/python

#coding=utf-8

import os

import sys

reload(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':

                break

if __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的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中一些包的基本用处和安装方法

Python中socket实现udp通信的介绍(附示例)

Python把二维数组输出为图片的方法

Python购物车程序代码

Python制表符是什么

解析Python实现mq消息队列以及消息队列的优点

Python 各种删除文件失败的处理方式分享

Python用input输入列表的方法

Python 合并多个字典或映射教程

Python单链表中如何查找和删除节点?

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...