from:http://www.cnblogs.com/bluescorpio/archive/2010/05/04/1727020.html
最近在用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
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