解析命令的输出

时间:2015-06-01 23:40:52

标签: python

如何解析“df -h / local / mnt”的输出以获取“Avail”数据,如果小于150G,则退出脚本?

import os
from subprocess import Popen, PIPE, STDOUT

cmd = ['df', '-h', '/local/mnt']

Pipe = Popen(cmd, stdout=PIPE, stderr=PIPE)
(output, error) = Pipe.communicate()

print "OUTPUT"
print output

df -h / local / mnt

的示例输出
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       520G  324G  170G  66% /local

2 个答案:

答案 0 :(得分:0)

试试这个:

import os
output = os.system('df -h /local/mnt')
avail = list(reversed(output.split()))[4]

这里我只是列出(反向())单词数组,所以我需要做更少的工作来计算空格,但它并不是真的需要完成。尝试一下,将[4]的索引更改为另一个数字

答案 1 :(得分:0)

这是一种方式:

import subprocess
output = subprocess.check_output("df -h /", shell=True ).split('\n')[1]

data = output.split()[3][:-1]

if int(data) < 150:
    exit()