python 执行系统命令---suprocess模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 执行系统命令---suprocess模块相关的知识,希望对你有一定的参考价值。

1.suproess模块。

可以执行系统命令,windows命令或者linux名 都可以。

os模块也可以执行系统命令。但是推荐使用suproess模块

 

2.具体用法:

import subprocess
# res=subprocess.Popen(‘dir D:\\python_project‘,shell=True)  #逗号前面是要执行的命令(列出指定目录下的所有文件),后面的shell=True是执行命令的意思。
# print(res)  #这样打印的是拿到一个内存值,并且把结果输出到屏幕。

res=subprocess.Popen(dir D:\\python_project,
                     shell=True,
                     stdout=subprocess.PIPE,      #PIPE是管道,也就是将正确输出放到一个管道中,管道中的数值只能取一次,取走了就没有了。
                     stderr=subprocess.PIPE)    #将错误输出丢到一个管道中,跟上边不是同一个管道。
print(res.stdout.read().decode(gbk))  #从管道中将值读出来,但是读出的是bytes类型的,需要转码一下,windows需要转成gbk  linux转成utf-8
print(res.stderr.read().decode(gbk))  #将错误从管道拿出,输出打印出来。

3.模拟一个windows命令

#dir file_path | findstr py$  #列出指定目录下的所有文件,过滤出以py结尾的文件
res1=subprocess.Popen(rdir D:\\python_project\\day7\\day7,
                     shell=True,
                     stdout=subprocess.PIPE,)

# stdin=res1.stout
res2=subprocess.Popen(rfindstr py$,
                     shell=True,
                     stdin=res1.stdout,   #将res1的正确输出当做这个命令的正确输入。
                     stdout=subprocess.PIPE,)


print(res2.stdout.read().decode(gbk))  #获取res2的正确输出

技术分享

 

以上是关于python 执行系统命令---suprocess模块的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第十三天 time datetime random os sysshutil json pickle shelve xml configparser hashlib suprocess

suprocess模块

Python中执行系统命令常见的几种方法

使用Python执行系统命令方法有哪些?

python 执行系统命令模块比较

Python中执行系统命令常见的几种方法--转载