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 学习的更多相关文章

  1. [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 ...

  2. static wechat red package tool

    ---------------------------------------------------------------------------------------------------- ...

  3. 关于package.json学习

    1.如果要下载npm包,必须有package.json文件,不然会报错,如果缺少必要字符报错,参考报错信息 2.license,指定用户权限,可以不写,不会报错 3.devDependencies,依 ...

  4. java package 包 学习笔记

    编译命令示例: javac -d . Main.java 注:带参数-d自动建立文件目录, 只使用javac 则需要手工创建目录 把 class文件打包 jar命令 jar cvf T.jar *; ...

  5. Debug tool 学习笔记

    GDB调试命令大全 gdb --pid 1235 gdb core.1234 where (bt)    //where the segmentation fault occurred f 1     ...

  6. package[golang]学习笔记之context

    *关于context https://talks.golang.org/2014/gotham-context.slide#29

  7. package[golang]学习笔记之runtime

    *获取当前函数名称,文件名称,行号等信息.通过这个函数配合Println函数可以方便的获取错误信息的位置 var n int //n==0 当前 //n==1 调用函数 //n==2 调用函数的调用函 ...

  8. Scala - 快速学习02 - 搭建开发环境

    1- 下载与安装 下载链接:http://www.scala-lang.org/download/ CMD To run Scala from the command-line, simply dow ...

  9. 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记

    注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...

随机推荐

  1. JTopo 使用

    1. 下载JTopo js http://www.jtopo.com/download.html 2. 引入js文件,引入jtopo之前引入jQuery 3. JTopo Demo -- 圆形布局 步 ...

  2. SpringMVC中ApplicationContext中的配置文件的问题(No bean named 'sessionFactory' is defined 已解决)

    在一个SpringMVC项目中, 连着两天不管怎么搞都是一直在报错, 报的最多的就是一个 Servlet.service() for servlet [springDispatcherServlet] ...

  3. 获取客户端真实IP地址

    Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...

  4. 对于局部变量,text、ntext 和 image 数据类型无效

    开发存储过程时报如上错误.大多数人说用varchar(8000)代替text,但值我这里超过8000,不可取 解决: sql2005或以上版本支持新数据类型:varchar(max)nvarchar( ...

  5. ip地址后边加个/8(16,24,32)是什么意思

    是掩码的位数,A类IP地址的默认子网掩码为255.0.0.0(由于255相当于二进制的8位1,所以也缩写成“/8”,表示网络号占了8位);B类的为255.255.0.0(/16);C类的为255.25 ...

  6. On Line Tools

    1)在线生成证书请求 https://www.icewarp.com/support/online_help/3206.htm 2)在线文件共享 https://reep.io/ https://sn ...

  7. 779A Pupils Redistribution

    /* A. Pupils Redistribution time limit per test 1 second memory limit per test 256 megabytes input s ...

  8. myeclipse svn 插件去除已经保存的密码方法

    myeclipse svn 插件去除已经保存的密码方法   删除掉C:\Documents and Settings\hao\Application Data\Subversion\auth\svn. ...

  9. shell的一些简单用法

    一 BASH的属性 BASH中会存储一些自身属性的参数,启用或关闭某一项功能 例如控制* .字符是否为通配 查看参数 set -o 关闭noglob参数 set -o noglob ls * ls: ...

  10. 2018.07.04 POJ 1113 Wall(凸包)

    Wall Time Limit: 1000MS Memory Limit: 10000K Description Once upon a time there was a greedy King wh ...