设为首页 收藏本站
查看: 829|回复: 0

[经验分享] python中常用到的模块和包名称

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-11 10:31:03 | 显示全部楼层 |阅读模式
1 paramiko  (基于openssh,python封装的ssh)
模块python自带

用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
import paramiko                                          
ssh = paramiko.SSHClient()                              
ssh.load_system_host_keys()                              
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='192.168.100.20',port=58422,username='oldboy')
stdin, stdout,stderr=ssh.exec_command('uptime')   
                 
type(stdout)
paramiko.ChannelFile
print stderr.readlines()
[]
print stdout.readlines()
[' 21:35:05 up 1 day, 55 min,  2 users,  load average: 0.00, 0.00, 0.00\n']




相当于shell当中的
1
ssh -p58422 oldboy@192.168.100.20 -o StrictHostKeyChecking=no 'uptime'





2 subprocess(尽量不要用这个模块,返回不美观,如果只是执行shell命令推荐commands模块)
python自带模块

常用fork子进程执行shell命令,可以返回结果和返回值
举例:
只需要返回值
1
2
3
4
5
6
7
In [6]: retcode = subprocess.call('ls -l', shell=True)
total 12
-rw-rw-r--. 1 oldboy oldboy 239 Jan 19 21:13 access.log
-rw-rw-r--. 1 oldboy oldboy 458 Jan 19 20:50 arp.txt
-rw-r--r--. 1 oldboy oldboy 184 Jan 16 12:04 hosts
In [7]: print retcode
0




注意:
shell默认为False,等于 retcode = subprocess.call(["ls", "-l"])  列表的形式第一个为命令,后面的都作为参数传递

需要返回值
1
2
child1 = subprocess.Popen(["cat","/etc/passwd"], stdout=subprocess.PIPE)
child1.stdout.readlines()





3 comands模块
python自带模块
1
status,output = commands.getstatusoutput('cat /etc/passwd')



优点: 无论命令执行错误与正确,正确输出和错误输出都以字符串原样的字符串形式传递给output


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-202541-1-1.html 上篇帖子: python安装paramiko模块 下篇帖子: Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表