zoukankan      html  css  js  c++  java
  • 使用python执行系统命令——subprocess

     背景:subprocess是python官方推荐调用系统命令的模块

    import subprocess

     

     

    subprocess最主要的两个方法/类:

     

    # 参数说明:stdinstdout相当于一个管道。激活stdout变量后执行结果将被重定向到stdout这个文件中,激活stdin可以从这里输入与子程序(用这个脚本执行系统命令再打开的程序)交互的命令。

                                             注意:要想激活这两个变量必须给他们赋予一个模块指定的变量"subprocess.PIPE"

    #     shell:如果此变量被设为True,则会调用系统默认shellcmd/bash)执行系统命令,如果设为False则用python解释器自己的shell执行命令。

    #     timeout:执行命令后的等待时间,超时则停止继续往下执行

    #     stderr:保存错误信息

     

    subprocess.run('此处写操作系统的命令', *,stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)

    subprocess.Popen('此处写操作系统的命令', *, stdin=None, input=None, stdout=None, stderr=None, shell=False, timeout=None, check=False, encoding=None, errors=None)

     

     

     

    一、获取执行操作命令后的结果:

    bb = subprocess.run('ipconfig', stdout=subprocess.PIPE)

    print(bb.stdout.decode('gbk'))    ======> 执行结果就保存在stdout这个变量中

     

     

    二、利用python代码打开一个程序,并且和这个程序实现交互:

     

    1、直接输入交互命令方式:

    bb = subprocess.Popen('python', stdout=subprocess.PIPE, stdin=subprocess.PIPE)

    bb.stdin.write(b'print("123")')

    bb.stdin.close()

    print(bb.stdout.read())

     

    2、从文件读取交互命令方式

    f = open('123')  =====>此文件包含要执行的交互命令

    bb = subprocess.run('python', stdout=subprocess.PIPE, stdin=f)

    print(bb.stdout)

  • 相关阅读:
    一步步用新浪SAE免费教大家搭建个人博客(wordpress 3.0.4 for SAE )
    欢迎大家来访西北狼网络乌托邦
    教大家如何让新浪SAE上安装wordpress实现伪静态
    CSDN 600万用户数据信息泄露并道歉
    推荐5款好用的屏幕录像软件
    IPv6无法解决全部安全问题
    详解STP以及工作过程
    如何在WordPress中实现彩色标签云
    EIGRP和RIP的一个综合性很强的实验(变态实验之一)
    查看系统等待的sql
  • 原文地址:https://www.cnblogs.com/baihualin/p/11288686.html
Copyright © 2011-2022 走看看