码迷,mamicode.com
首页 > 其他好文 > 详细

subprocess

时间:2019-02-20 17:21:25      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:解释   pop   cts   pychar   proc   个数   arm   process   dir   

模块subprocess

 1 import  subprocess
 2 
 3 ‘‘‘
 4 sh-3.2# ls /Users/egon/Desktop |grep txt$
 5 mysql.txt
 6 tt.txt
 7 事物.txt
 8 ‘‘‘
 9 
10 res1=subprocess.Popen(ls /Users/jieli/Desktop,shell=True,stdout=subprocess.PIPE)
11 res=subprocess.Popen(grep txt$,shell=True,stdin=res1.stdout,
12                  stdout=subprocess.PIPE)
13 
14 print(res.stdout.read().decode(utf-8))
15 
16 
17 #等同于上面,但是上面的优势在于,一个数据流可以和另外一个数据流交互,可以通过爬虫得到结果然后交给grep
18 res1=subprocess.Popen(ls /Users/jieli/Desktop |grep txt$,shell=True,stdout=subprocess.PIPE)
19 print(res1.stdout.read().decode(utf-8))
20 
21 
22 #windows下:
23 # dir | findstr test*
24 # dir | findstr txt$


25 import subprocess
26 res1=subprocess.Popen(rdir C:\Users\Administrator\PycharmProjects\test\函数备课,shell=True,stdout=subprocess.PIPE)
27 res=subprocess.Popen(findstr test*,shell=True,stdin=res1.stdout,
28                  stdout=subprocess.PIPE)
29 
30 print(res.stdout.read().decode(gbk)) #subprocess使用当前系统默认编码,得到结果为bytes类型,在windows下需要用gbk解码

#举例说明:
import subprocess

obj = subprocess.Popen(dir,
                 shell=True,
                 stdout=subprocess.PIPE,
                 stderr=subprocess.PIPE,
                       
                )

print(obj.stdout.read().decode(gbk))  # 正确命令
print(obj.stderr.read().decode(gbk))  # 错误命令

# shell: 命令解释器,相当于调用cmd 执行指定的命令。
# stdout:正确结果丢到管道中。
# stderr:错了丢到另一个管道中。
# windows操作系统的默认编码是gbk编码。

 

subprocess

标签:解释   pop   cts   pychar   proc   个数   arm   process   dir   

原文地址:https://www.cnblogs.com/yanranran/p/10407586.html

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