• 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 os
    
    output = os.popen('ls .')
    print('命令返回结果')
    print(output.read())
    

    subprocess.Popen

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

    import subprocess
    
    pipe = 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 paramiko
    
    ssh = 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后返回字符串格式的远程服务器的命令行返回。

  • 相关阅读:
    mysql 1
    mysql 创建库
    SQLServer2008数据库卸载图解
    同一个局域网中用Windows自己的远程桌面远程局域网中的其他PC
    WIN10怎么安装SQL server2000数据库
    怎样彻底卸载(删除)SQL server2000
    SQL Server 2000安装教程图解
    如何将网页保存为PDF文件
    【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(四)
    【转】ArcGIS API for Silverlight/WPF 2.1学习笔记(五)
  • 原文地址:https://www.cnblogs.com/superhin/p/16259742.html
Copyright © 2020-2023  润新知