今晚的集.

    在python爬虫群上面看到了别人问的怎么从终端获取执行结果,本来不是这样子问的,但是他不懂吧.一开始是说b =os.system(“df -h”),然后print b.但是呢,这个b是os.system()执行后的结果呢.如果执行成功,则b是0,不成功是255.后来说他想得到df -h后面执行得的那些东西.就是第一行.内容有”Filesystem  Size Used Avail  Use% Mounted on
    

    知道了想要得到的东西是什么就很容易得到了.首先是搜索了如何获取命令执行后的第一行,百度了一下啊.结果是用:sed ’1q’获取执行结果的第一行内容.
        然后是如把这个内容收集到python变量中.继续百度了一下,发现subprocess这个模块可以做到.http://www.jb51.net/article/48086.htm   继续往下看.

然后写了代码.

#!/usr/bin/env python #coding=utf-8
import os
from sbprocess import Popen,PIPE
tem = Popen(’df -h|sed ’1q’’,stdout=PIPE)
print tem.stdout.read()

是吧,一看这代码就知道是错误的.挺蛋疼的,

后来改了一下啊.

#!/usr/bin/env python
#coding=utf-8
import os
from sbprocess import Popen,PIPE
cmd = "df -h|sed ’1q’"
tem = Popen(cmd,stdout=PIPE)
print tem.stdout.read()

呵呵,还是报错了.具体报错忘记了,结果在CSDN上面看到:http://bbs.csdn.net/topics/390319076

然后完善了一下代码.

#!/usr/bin/env python
#coding=utf-8
import os
from sbprocess import Popen,PIPE
cmd = "df -h|sed ’1q’"
tem = Popen(args=cmd,shell=True stdout=PIPE)
tem.wait()
print tem.stdout.read()

嗯.真棒..可以执行了..顺便吐槽一下.emlog的编辑器真蛋疼