博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中执行shell命令的几个方法小结
阅读量:6825 次
发布时间:2019-06-26

本文共 1227 字,大约阅读时间需要 4 分钟。

来源:

Python 执行 shell 命令

最近有个需求就是页面上执行shell命令,第一想到的就是os.system

os.system('cat /proc/cpuinfo')
但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。
尝试第二种方案 os.popen()
output = os.popen('cat /proc/cpuinfo')print output.read()
通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。但是无法读取程序执行的返回值)
尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')print status, output
Python Document 中给的一个例子,
>>> import commands>>> commands.getstatusoutput('ls /bin/ls')(0, '/bin/ls')>>> commands.getstatusoutput('cat /bin/junk')(256, 'cat: /bin/junk: No such file or directory')>>> commands.getstatusoutput('/bin/junk')(256, 'sh: /bin/junk: not found')>>> commands.getoutput('ls /bin/ls')'/bin/ls'>>> commands.getstatus('/bin/ls')'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

使用 paramiko 连接ssh 远程主机 执行 shell 命令

import paramikoif __name__ == '__main__':    ip = '172.28.11.132'     port = 22               user_name = "root"      user_password = r'123456'     ssh = paramiko.SSHClient()    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())    ssh.connect(ip, port, user_name, user_password)    cmd = 'ls /'    stdin, stdout, stderr = ssh.exec_command(cmd)    print stdout.readlines()

转载地址:http://tmgzl.baihongyu.com/

你可能感兴趣的文章
Lower Power with CPF(二)
查看>>
解释器模式
查看>>
单片机C语言下LCD多级菜单的一种实现方法
查看>>
JavaScript回调函数的理解
查看>>
C#实现UTC时间与Datetime转换
查看>>
JS模块化写法(转)
查看>>
allegro飞线隐藏
查看>>
约瑟夫环问题
查看>>
按照不同节点优先级,分布不同任务算法
查看>>
用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 (源码下载)...
查看>>
muduo 与 libevent2 吞吐量对照
查看>>
倒计时的CountDownTimer
查看>>
帝国备份王(Empirebak) \class\functions.php、\class\combakfun.php GETSHELL vul
查看>>
ecshop /category.php SQL Injection Vul
查看>>
Extjs4 up 和down的用法
查看>>
nexus安装实例
查看>>
Response.Redirect 打开新窗体的两种方法
查看>>
[Axure RP] – 鼠标滑入按钮时自动下拉表单的设计示例
查看>>
鼠标键盘无法进入:(EE) config/hal: couldn’t initialise context: (null)
查看>>
WebService它Soap头验证进入
查看>>