码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-08-20 17:04:50      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:pen   推荐   bsp   sub   image   文件   ges   path   log   

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模块

标签:pen   推荐   bsp   sub   image   文件   ges   path   log   

原文地址:http://www.cnblogs.com/yxwang/p/7400170.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!