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. 检测到有潜在危险的 Request.Form 值——ValidateRequest的使用

    1.aspx中 在 Web 应用程序中,要阻止依赖于恶意输入字符串的黑客攻击,约束和验证用户输入是必不可少的.跨站点脚本攻击就是此类攻击的一个示例. 当请求验证检测到潜在的恶意客户端输入时,会引发此异 ...

  2. INI

    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理 ...

  3. IO模型与select,poll,epoll

    五种:阻塞,非阻塞,IO复印,信号驱动,异步. select,poll,epoll select: 典型用32个32位的整数表示1024个描述符,并发的局限. poll:功能同上,但数据结构不一样(链 ...

  4. php5.3 php-fpm 开启 关闭 重启

    自php5.3开始,php源码中包含了php-fpm,不需要单独通过补丁的方式安装php-fpm,在源码安装的时候直接 configure 中增加参数 –enable-fpm 即可.   所以启动.关 ...

  5. Codeforces 612B. Wet Shark and Bishops 模拟

    B. Wet Shark and Bishops time limit per test: 2 seconds memory limit per test: 256 megabytes input: ...

  6. 一名优秀的UI设计师应该具备哪些条件?

    想做好一个好的UI设计师除了应该具有一定的审美能力,还要了解整个产品的开发过程,因为目前国内的软件行业还不能对UI设计形成应有的重视度,所以对我们的要求就更高了,你要能作出夺人眼球的东西,还要站在用户 ...

  7. dump打印

  8. 【原型实战】分分钟搞定Unsplash网站原型设计

    网站原型设计是我们在设计网页过程中必不可少的一步,激烈的市场竞争让我们不得不对产品进行快速迭代,如何高速有效的进行原型设计成为了设计师头疼的问题.本文将以unsplash网站为实例,教大家快速搞定we ...

  9. struts2乱码问题

    简介:做了个功能,用的struts2,表单提交到后台,接收后打印出来的数据乱码.   解决步骤: 1. struts.xml中配置<constant name="struts.i18n ...

  10. div浮停在页面最上或最下

    div{ position:fixed; bottom:0px; // top:0px; z-index:999; } bottom:0px 浮停在最下面,top:0px 浮停在最上面:z-index ...