Simple Package Tool 学习
Simple Package Tool 学习
1.getattr内置函数
getattr(object, name[, default])
python Packages.py install -p "$host_ip" -s "$build_series" -v "$build_version" -n "$ne_type" -i "$ini_path" -d "$dir_name" -b "$sw_name" -m "$active_omu" -g "$digi_ip"
Packages.py
1 ACTION_LIST = ('config', 'install', 'patch', 'burn', 'sync')
2
3 class Packages(object):
4
5 def __init__(self):
6
7 pass;
8
9 def __getattr__(self, arg):
10
11 if arg in ACTION_LIST:
12
13 return getattr(self, 'handle_%s_cmd' % arg)
14
15 raise AttributeError
16
17
18
19 #sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始
20
21 def main(argv=None):
22
23 args = argv[1:]
24
25 action = args[0]
26
27 action_args = args[1:]
28
29 actor = getattr(Packages(), action)(action_args) #getattr()为获取某个类里的某个属性函数等,后面再接括号即为运行该函数
32
33
34
35 if __name__ == "__main__":
36
37 sys.exit(main())
2.optparse模块
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-f","--file",dest="filename",help="write report to FILE",metavar="FILE")
parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True,help="don't print status messages to stdout")
(options, args) = parser.parse_args()
3.
SW-PACKAGE STATUS DIRECTORY ENVIRONMENT DEF ACT
PACKAGE-ID (REP-ID) DELIVERY
CD-ID CRND8155 BU CRND81550 CB 15.5-0 - Y
CB 15.5-0 CNR51840 2.7-15 CR2CZ154 NW CR2CZ15444 CB 15.4-44 Y Y
CB 15.4-0 CNR51840 2.7-15 CRE8H154 UT CRE8H1540 CB 15.4-0 - Y
CB 15.4-0 CNR51840 2.7-15 CRPEY154 UT CRPEY15443 CB 15.4-43 - Y
CB 15.4-0 CNR51840 2.7-15
如何将每一行数据和对应的title成键值对输出?
上述数据的特点:每一列的起始位置都是对齐的,因此可以利用这一点,每一列的距离 = 下一列的起始位置 - 该列的起始位置,这样就能将每一列数据获取出来和title对应.
例:我们要获取CRND8155这个值(将该行先定义为line4,第一行定义为line1):line4[line1.index('SW-PACKAGE'):line1.index('STATUS')].strip()
Simple Package Tool 学习的更多相关文章
- [Tools] Create a Simple CLI Tool in Node.js with CAC
Command-line tools can help you with all sorts of tasks. This lesson covers the very basics of setti ...
- static wechat red package tool
---------------------------------------------------------------------------------------------------- ...
- 关于package.json学习
1.如果要下载npm包,必须有package.json文件,不然会报错,如果缺少必要字符报错,参考报错信息 2.license,指定用户权限,可以不写,不会报错 3.devDependencies,依 ...
- java package 包 学习笔记
编译命令示例: javac -d . Main.java 注:带参数-d自动建立文件目录, 只使用javac 则需要手工创建目录 把 class文件打包 jar命令 jar cvf T.jar *; ...
- Debug tool 学习笔记
GDB调试命令大全 gdb --pid 1235 gdb core.1234 where (bt) //where the segmentation fault occurred f 1 ...
- package[golang]学习笔记之context
*关于context https://talks.golang.org/2014/gotham-context.slide#29
- package[golang]学习笔记之runtime
*获取当前函数名称,文件名称,行号等信息.通过这个函数配合Println函数可以方便的获取错误信息的位置 var n int //n==0 当前 //n==1 调用函数 //n==2 调用函数的调用函 ...
- Scala - 快速学习02 - 搭建开发环境
1- 下载与安装 下载链接:http://www.scala-lang.org/download/ CMD To run Scala from the command-line, simply dow ...
- 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...
随机推荐
- 8.String to Integer (atoi) (INT; Overflow)
Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...
- TZOJ 3533 黑白图像(广搜)
描述 输入一个n*n的黑白图像(1表示黑色,0表示白色),任务是统计其中八连块的个数.如果两个黑格子有公共边或者公共顶点,就说它们属于同一个八连块.如图所示的图形有3个八连块. 输入 第1行输入一个正 ...
- session以及分布式服务器session共享
一.session的本质 http协议是无状态的,即你连续访问某个网页100次和访问1次对服务器来说是没有区别对待的,因为它记不住你. 那么,在一些场合,确实需要服务器记住当前用户怎么办?比如用户登录 ...
- firebug chrome debug[z]
http://www.cnblogs.com/rubylouvre/p/3613042.html
- oracle的分析函数over(Partition by...) 及开窗函数
over(Partition by...) 一个超级牛皮的ORACLE特有函数. oracle的分析函数over 及开窗函数一:分析函数overOracle从8.1.6开始提供分析函数,分析函 ...
- Car 加油
package com.hanqi; public class Car { //属性 成员变量 //车的颜色 String YanSe; //车的品牌 String PinPai; //邮箱容量 do ...
- c++ 对象复制引用时何时调用构造函数、析构函数
class TEST{ private : public : TEST() {std::cout << "constructor" << std::endl ...
- 【Maven】安装及配置(Linux)
本文介绍Linux环境下安装Maven 安装环境和软件 系统:Linux(CentOS) 软件:apache-maven-3.3.9-bin.tar.gz(解压版). 安装步骤 maven是基于Jav ...
- 20155210 2016-2017-2 《Java程序设计》第7周学习总结
20155210 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 时间的度量: GMT(Greenwich Mean Time)时间:现在不是标准时间 世界时 ...
- 解决启动nginx时报80端口被占用的问题
如何解决启动nginx时报80端口被占用 最近公司的的一个服务器上需要部署多个项目,但80端口只有一个,所有只有使用Nginx来代理,当访问域名时就可以自动 转到IP:端口号,而不需要在域名后面加端口 ...