[python语法语义] 关于subprocess模块的Popen的一个问题

bluescorpio 2010-05-06
最近在用subprocess中的Popen做个磁盘监控小程序,但是在使用ps = Popen("df -h", shell=True, stdout=PIPE, stderr=PIPE)之后,再使用output_lines = ps.stdout.readlines()的时候,output_lines总是内容为空,有哪位知道是什么原因么?

btw:我是在 windows下设计这个程序的


代码
#!/usr/bin/env python
#coding=utf-8
from subprocess import Popen, PIPE
import re

def disk_space(pattern="2[0-9]%", message="CAPACITY WARNING"):
    ## take shell command output
    ps = Popen("df -h", shell=True, stdout=PIPE, stderr=PIPE)
    output_lines = ps.stdout.readlines()
    for line in output_lines:
        line = line.strip()
        if re.search(pattern, line):
            print "%s %s" %(message, line)
           
if __name__ == '__main__':
    disk_space
liangguanhui 2010-08-03
似乎windows下的管道经常有问题~~
Zhongwei_leg 2010-08-03
df -h
是 windows 下的命令么?
Global site tag (gtag.js) - Google Analytics