• subprocess


    subprocess.call()  #执行命令,并返回执行状态,其中shell为False时,命令需要通过列表的形式传入,如果shell为True时,可直接传入命令。

    shell为Ture时不需要python解析,直接传给shell,所以后面可以直接加命令;shell为False时,表时需要python解析,所以可以加列表或元组,如果不是这两种类型,则报错。

    import subprocess
    
    a = subprocess.call('cd',shell=True)
    print(a)    #打印结果为0,说明前一个命令的返回值为0,成功则返回0,不成功则返回非0

    subprocess.Popen()

    在一些复杂场景中,我们需要将一个进程的执行输出作为另一个进程的输入。在另一些场景中,我们需要先进入到某个输入环境,然后再执行一系列的指令等。这个时候我们就需要使用到suprocess的Popen()方法。

    import subprocess
    obj = subprocess.Popen('cd',shell=True,stdout=subprocess.PIPE)   #将shell的执行结果输出到管道
    print(obj)    #<subprocess.Popen object at 0x0000000000FB4A20>
    a = obj.stdout.read()   #获取这个对象输出到管道中的内容
    print(a)    #b'C:\Users\Lowry\PycharmProjects\fullstack_s2\week7\day1
    ',结果为bytes类型

    要读出来要先输出到标准输出里,先存到管道PIPE,再给stdout;由于python和shell是两个进程不能直接通信,必须通过操作系统提供的管道,用管道可以把结果存到stdin stdout stderr

    参考:https://www.cnblogs.com/revo/p/7357170.html

    控制台乱码:https://blog.csdn.net/pfm685757/article/details/53330531

  • 相关阅读:
    杭电acm1517
    杭电acm1228
    杭电acm1859
    杭电acm1124
    杭电acm1327
    CPP Templates 之 template 关键字的用法技巧
    malloc与calloc区别
    CPP Templates 之 类模板的继承
    CPP Templates 之 模板演绎的注意事项
    CPP Templates 之 局部类模板特化
  • 原文地址:https://www.cnblogs.com/sq5288/p/8579915.html
Copyright © 2020-2023  润新知