Python3执行系统命令的几种方式(Python3怎么运行)

网友投稿 2202 2022-09-04


Python3执行系统命令的几种方式(Python3怎么运行)

在Python中我们可以执行一些系统命令来获取一些系统信息,或者结合一些三方命令行工具如JMeter、appium、adb、allure等完成一系列操作。

Python中常见的执行系统命令的方式如下:

os.system

使用os.system可以很方便的执行一个命令行命令,例如。

import os# 显示当前目录内容os.system('ls .') # Windows系统可以使用 os.system('dir .')

但是,os.system无法获取命令行输出结果,

os.popen

使用os.popen可以获取到命令行执行结果

import osoutput = os.popen('ls .')print('命令返回结果')print(output.read())

subprocess.Popen

另外我们也可以使用子进程subprocess来执行系统命令并获取结果

import subprocesspipe = subprocess.Popen('ls .', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)print('命令返回结果')print(pipe.stdout.read().decode())

其中,​​shell=True​​是使用字符串形式的命令,否则使用列表形式的命令

​​stdout=subprocess.PIPE​​指将命令行标准输出放入subprocess管道,

​​stderr=subprocess.PIPE​​则表示把错误输出(如果有)放入subprocess管道,可以使用pipe.stderr.read().decode()获取错误结果。

​​pipe.stdout.read()​​读取到的是二进制结果,要使用decode()转为字符串格式。

使用paramiko在远程Linux机器上执行命令

如果想要在在远程服务器上执行命令,可以使用三方库paramiko,安装方法如下:

$ pip install paramiko

使用示例如下:

import paramikossh = paramiko.SSHClient()ssh.connect(hostname='主机地址', port=22, username='登陆用户名', password='登陆密码')stdin, stdout, stderr = ssh.exec_command('ls /root/') # 执行shell命令print('命令行返回')print(stdout.read().decode())

其中stdin、stdout、stderr分别表示系统标准输入、系统标准输出、系统标准错误输出。使用返回的stdout.read()可以得到系统返回的输出内容二进制数据,decode后返回字符串格式的远程服务器的命令行返回。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一文读懂低代码镜像,快速访问对应的视图
下一篇:java使用字符画一个海绵宝宝
相关文章

 发表评论

暂时没有评论,来抢沙发吧~