Python实现自动添加脚本头信息的示例代码


Posted in Python onSeptember 02, 2016

前言

每个人写脚本时的格式都会有所不同,有的会注明脚本本身的一些信息,有的则开门见山,这在小团队里其实没什么,基本别人做什么你也都知道,但如果放到大的团队就比较麻烦了,因为随着人数的增多,脚本成指数增长,如果每个人风格不统一,到最后就会造成非常大的弊端,所以当团队人数增长后,就必须有一套标准,形成大家统一的编码规则,这样即使不看脚本具体实现,也知道这个脚本的功能是什么。

我们今天分享的一段脚本是自动添加注释信息的脚本,添加的信息包括脚本名称、作者、时间、描述、脚本用法、语言版本、备注等,下面来看示例代码

#!/usr/bin/env python
 
 
from os.path import exists
from time import strftime
import os
 
title = raw_input("Enter a title for your script: ")
 
title = title + '.py'
 
title = title.lower()
 
title = title.replace(' ', '_')
 
if exists(title):
  print "\nA script with this name already exists."
  exit(1)
 
descrpt = raw_input("Enter a description: ")
name = raw_input("Enter your name: ")
ver = raw_input("Enter the version number: ")
div = '======================================='
 
filename = open(title, 'w')
 
date = strftime("%Y%m%d")
 
filename.write('#!/usr/bin/python')
filename.write('\n#title\t\t\t:' + title)
filename.write('\n#description\t\t:' + descrpt)
filename.write('\n#author\t\t\t:' + name)
filename.write('\n#date\t\t\t:' + date)
filename.write('\n#version\t\t:' + ver)
filename.write('\n#usage\t\t\t:' + 'python ' + title)
filename.write('\n#notes\t\t\t:')
filename.write('\n#python_version\t\t:2.6.6')
filename.write('\n#' + div * 2 + '\n')
filename.write('\n')
filename.write('\n')
 
filename.close()
 
os.system("clear") 
 
os.system("vim +12 " + title)
exit()

脚本不做过多解释了,基本就是获取信息,然后写入一个文件中,其它不废话了,这个脚本足够简单了,我们最后来看看生成的结果:

#!/usr/bin/python
#title         :test4.py
#description      :I am test script
#author         :python技术
#date          :20160902
#version        :0.1
#usage         :python test4.py
#notes         :
#python_version     :2.6.6
#==============================================================================

总结

大家想一下,如果每个脚本前面都有这些基本信息,是不是看起来会清晰很多,最后希望这个脚本给给大家带来些帮助,当然如果有任何问题可以留言交流。谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python+Django在windows下的开发环境配置图解
Nov 11 Python
python实现360皮肤按钮控件示例
Feb 21 Python
python版本的仿windows计划任务工具
Apr 30 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
python django生成迁移文件的实例
Aug 31 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
python -v 报错问题的解决方法
Sep 15 Python
Django实现drf搜索过滤和排序过滤
Jun 21 Python
利用Python获取操作系统信息实例
Sep 02 #Python
好用的Python编辑器WingIDE的使用经验总结
Aug 31 #Python
Linux下为不同版本python安装第三方库
Aug 31 #Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 #Python
分享Python开发中要注意的十个小贴士
Aug 30 #Python
Python将图片批量从png格式转换至WebP格式
Aug 22 #Python
利用Python批量生成任意尺寸的图片
Aug 29 #Python
You might like
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
几种tab切换详解
2017/02/03 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
详解python开发环境搭建
2016/12/16 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
Python如何实现线程间通信
2020/07/30 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
交通安全寄语大全
2014/04/08 职场文书
《二泉映月》教学反思
2014/04/15 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
Kubernetes关键组件与结构组成介绍
2022/03/31 Servers
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android