六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 40|回复: 0

我在vi里自动给python代码生成注释的代码,linux

[复制链接]

升级  66%

9

主题

9

主题

9

主题

童生

Rank: 1

积分
33
 楼主| 发表于 2013-1-28 19:30:27 | 显示全部楼层 |阅读模式
不知道你是不是用vi,如果是的话,可以用这段代码,我是放在缺省路径下的,取名为pyTool
 
在vi的一个函数行进入命令模式,命令为 :pyTool -func
就会给当前这个函数生成注释
 
类上 运行 :pyTool -cloass
就会给当前类生成注释
 
代码如下
 
#!/bin/env python#coding:utf-8import os,sys,reimport re,timeclass PyAnsy:    author = 'dream.people'    def Now(self):        return "%04d/%02d/%02d %02d:%02d" % time.localtime()[:5]    def GetFile(self,filename):        _lines = []        if filename == '':            while True:                _line = sys.stdin.readline()                if _line == '':                    break                _lines.append(_line)        else:            _lines = open(filename,"r").readlines()        return _lines     def ClassComment(self):        line = self.GetFile('')[0]        if line == '':            return        g = re.match("^( *)class  *([^(:]*).*",line)        if g == None:            print line            return        blank,classname = g.groups()        blank += "    "        comment = blank + '"""\n'        comment += blank + '@author     :    %s\n' % self.author        comment += blank + 'comment     :    \n'        comment += blank + 'create date :    %s\n' % self.Now()        comment += blank + '-----------------------------------------\n'        comment += blank + 'modify date :    \n'        comment += blank + '@author     :    \n'        comment += blank + 'reason      :    \n'        comment += blank + '"""'        print line.rstrip()        print comment    def FuncComment(self):        line = self.GetFile('')[0]        if line == '':            return        g = re.match("^( *)def  *([^(]*)\(([^)]*)\).*",line)        if g == None:            print line            return        blank,fname,params = g.groups()        params = params.split(",")        blank += "    "        comment = blank + '"""\n'        comment += blank + '@author     :    %s\n' % self.author        comment += blank + 'comment     :    \n'        comment += blank + 'parameter   :    \n'        for param in params:            comment += blank + '    %s - \n' % param        comment += blank + 'return value:    \n'        comment += blank + 'create date :    %s\n' % self.Now()        comment += blank + '-----------------------------------------\n'        comment += blank + 'modify date :    \n'        comment += blank + '@author     :    \n'        comment += blank + 'reason      :    \n'        comment += blank + '"""'        print line.rstrip()        print commentansy = PyAnsy()if len(sys.argv) < 2:    print """命令行: pyTool option [filename]    选项:        -func 添加函数备注"""     sys.exit(-1)flag = sys.argv[1]if len(sys.argv) != 3:    filename = ''else:    filename = sys.argv[2]if flag == '-func':    ansy.FuncComment()elif flag == '-class':    ansy.ClassComment()else:    sys.exit(-1)
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表