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(r‘dir D:\\python_project\\day7\\day7‘, shell=True, stdout=subprocess.PIPE,) # stdin=res1.stout res2=subprocess.Popen(r‘findstr 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