网站大量收购独家精品文档,联系QQ:2885784924

Paramiko学习之优雅代码的实现.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Paramiko学习之优雅代码的实现

在线学习好工作 / Paramiko 学习之优雅代码的实现 1.消除硬编码 第一个就是它有硬编码的情况,什么是硬编码,什么是硬编码就是说在代码里 面,你用的一些变量它是写死的,比如说我们刚才调用connect APId 的时候它的, ip 地址端口用户名和密码都是我们写死的,什么06,用户名,密码, 如果它的对端的这个端口它变了,或者说是密码用户名一般不会变。它的密码改 变我们是不是要去修改代码,如果在实际工作中这样是非常不方便的,而且是有 一定风险的,修改代码就意味着它可能是bug 产生的边缘。所以说我们最好把这 个可配置的代码,和变量分离开来。就是说消除硬编码的一个办法就是让它可配 置。 2.异常捕捉 其次就是异常的捕捉,我们可以看到刚开始我们想列了,那个设置hot key 机 制时候,它调用connect 方法,就抛出来一个sshaexception 这个异常,但是我们 并没有对它进行处理。这样的话就会在 实际的工作中它就非常的不好,甚至是 有一些风险,因为不捕获这个异常的话,可能你的代码,就没办法在执行下去了, 然后你写了这个软件可能就当掉了实际生产环境下,是一个非常严重的问题。 3.封装 另外就是进行一下封装,我们看到Paramiko 它是对这个,它其实就是对ssh 协议的一个封装,然而我们在实际的使用Paramiko 的过程中,可以针对自己项 目的需要。对它进行二次封装,就是说我封装成我们大家,一起,团队的人它更 方便的使用它,甚至它可以不知道Paramiko 这个的存在,而调用你封装的接口。 来进行一个更方便的操作。 那我们就看实际的过程中我们是怎样来解决这几个问题的,首先就是消除硬编 码的问题,我们引入另外一个ConfigParser 这个库,ConfigParser 就是可以把这个 配置很方便的读进来。 config = ConfigParser.ConfigParser() 然后它有一个read 的API 就是读取文件。 那现在我们就一起来建立一个文件,叫做config.ini [ssh] host=05 port=22 usr=allen pwd=123 timeout=1.0 然后我们read 这个config.ini config.read(‘config.ini’) 那么这些硬编码的地方,就可以换成对应的配置 client.connect(hostname= config.get(‘ssh’,’host’), port= config.getint(‘ssh’,’ port’), username= config.get(‘ssh’,’ username’), password= config.get(‘ssh’,’ password’), timeout= config.getfloat(‘ssh’,’ timeout’)) 我们可以来运行看一下 这样我们把这些变量给替换成用这个配置来解析出来它实际的值。我们就是用 这个ConfigParser 来完成的,现在它运行的是非常的好,然后我们就把这些实际 的参数给用配置给它隐藏起来,如果将来我们配置一旦更改的时候我们只需要更 改这个config.ini 就可以,然后我们来看一下,如何进行异常的捕获。 首先这个connect 它会抛出这个异常的时候我们其实就应该用Python 的try 来 捕获它,然后用这个except Exception,e:可以把异常给打印出来。 try: self.client.connect(hostname=self.host, port=self.port, username=self.usr, password=self.pwd, timeout=self.timeout) return True except Exception,e: print e 这个时候呢一旦开启的时候我们记得要把它给close 掉。避免造成资源的浪费 self.client.connect(hostname=self.host, port=self.port, username=self.usr, password=self.pwd, timeout=self.timeout) return True except Exception,e: print caught , e t

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档