`
dream_people
  • 浏览: 60101 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

阅读更多

不知道你是不是用vi,如果是的话,可以用这段代码,我是放在缺省路径下的,取名为pyTool

 

在vi的一个函数行进入命令模式,命令为 :pyTool -func

就会给当前这个函数生成注释

 

类上 运行 :pyTool -cloass

就会给当前类生成注释

 

代码如下

 

#!/bin/env python
#coding:utf-8

import os,sys,re
import re,time

class 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 comment


ansy = 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)

 
分享到:
评论

相关推荐

    安装部署-linux安装python3.10教程

    在Linux系统中,Python是一种广泛使用的编程语言,用于各种任务,包括系统管理、网络编程、Web开发等。在默认情况下,许多Linux发行版都预装了Python 2,但随着Python 3的发展,尤其是版本3.10的发布,用户可能会...

    linux python3安装pyautogui

    在Linux环境中进行Python3的自动化工作,`pyautogui`是一个非常重要的库,它允许我们控制鼠标和键盘,实现屏幕截图以及与GUI交互等功能。在Linux系统上安装Python3和`pyautogui`可能会遇到一些挑战,特别是当使用`...

    Linux的vi编译器设置

    在深入探讨如何优化Linux下的vi编辑器以提升编程体验之前,我们先来简要回顾一下vi编辑器的历史及其在Linux环境中的重要性。vi(visual editor)是Unix系统中最古老且最广泛使用的文本编辑器之一,它诞生于1976年,...

    太原理工软件工程Linux与Python编程

    综上所述,通过对太原理工软件工程Linux与Python编程实验的学习,不仅能够掌握Linux系统的基本操作,还能够深入理解Python编程语言的核心概念和编程技巧。这对于从事软件开发工作的人员来说是非常重要的基础知识。

    linux-python.zip

    2. **文本编辑器**:在Linux中,常用的文本编辑器如`nano`、`vi`(或`vim`)和`gedit`将是你编写Python代码的工具。学习如何在这些编辑器中创建、编辑和保存文件是Linux开发环境的基本技能。 3. **Python环境设置**...

    Linux vi命令用法

    Linux中的vi编辑器是Unix系统中最古老的文本编辑器之一,其增强版VIM(Vi Improved)在现代Linux发行版中广泛使用。掌握vi的基本操作对于Linux用户来说至关重要,因为无论在哪个Unix环境中,几乎都能找到它的身影。...

    LabVIEW 调用 Python的三种方法_labview调用python_LabviewPython_lookrj7_wor

    通过编写Python C扩展或使用第三方工具(如`pybind11`或`ctypes`)将Python代码封装为DLL,可以将Python函数暴露给LabVIEW调用。这种方式能直接与LabVIEW的数据类型交互,但需要一定的C/C++编程知识。 3. **使用...

    linux vi视频课程

    linux vi 入门级视频教程,初学者的挚爱!

    linux与python.doc

    实验报告涉及了Linux系统安装与使用基础、Python程序运行方式和程序流程控制、Python函数以及Python面向对象程序设计四个主题。下面将详细阐述这些知识点。 一、Linux系统安装与使用基础 1. 安装Linux(CentOS 7)...

    Linux+Django+Python+Wsgi配置过程

    ### Linux+Django+Python+Wsgi配置过程 #### 一、环境准备与系统基本信息 根据提供的文件信息,本文档将详细介绍如何在Linux环境下配置Apache+Mod_Wsgi+Django环境的过程。具体步骤包括软件安装、项目部署等环节。...

    Linux基础实验代码

    在Linux环境中,源代码是操作系统、应用程序及各种工具的核心组成部分,因为它允许用户查看、修改和重新编译软件。这对于学习、调试和定制软件非常关键,这也是开源软件的一大优势。对于初学者来说,通过实践这些...

    linux C++ 练习代码

    本文将详细探讨Linux与C++结合的练习代码所涵盖的知识点,帮助你深入理解如何在Linux系统中高效地编写、编译和调试C++程序。 首先,了解Linux操作系统的基本命令是必要的。这包括文件和目录操作(如`cd`, `ls`, `...

    VI文件转化为C语言代码.jpg

    VI文件转化为C语言代码,将labview的VI代码转换成c语言的代码,操作不算复杂,可以试着转换一下,不懂的地方可以私信我。

    Linux下VI的使用

    Linux下VI的使用

    Linux中vi显示中文乱码的问题.docx

    在 Linux 中,使用 vi 编辑器时,可能会出现中文乱码的问题。这是因为 Windows 的默认编码是 GB,而 vi 的默认编码是 UTF-8。解决这个问题的方法是,修改 vi 的配置文件,使其支持 GB 编码。具体来说,就是在 ~/....

    Matlab自动生成STM32F103C8T6代码

    在现代嵌入式系统开发中,Matlab与Simulink结合使用生成特定硬件平台的代码变得越来越流行。特别是,Matlab的版本R2016b与Simulink模型一起,能够自动生成适用于STM32系列微控制器,如STM32F103C8T6的代码。STM32...

    Linux系统安装Python3环境.docx

    在Linux系统中,Python的位置在/usr/bin/python和/usr/bin/python2,都是软链接,/usr/bin/python指向/usr/bin/python2,而/usr/bin/python2最终又指向/usr/bin/python2.7。 3. 安装Python 3.x 安装Python 3.x需要...

    linux 常用命令 vi命令

    在Linux操作系统中,掌握一些常用命令是至关重要的,特别是对于初学者或正在学习Linux的同学。本文将主要聚焦于“vi”命令,一个强大的文本编辑器,以及与之相关的其他Linux命令。 **一、vi编辑器** vi(Visual ...

Global site tag (gtag.js) - Google Analytics