';波本';对象是不可订阅的python 2.6
我是Python新手,不知道如何在脚本中操作vmstat。我有这段代码来获取vmstat的输出,经过大量研究,我无法找到在runqueue1=sample1[0]中将其指定为变量的方法';波本';对象是不可订阅的python 2.6,python,indexing,popen,Python,Indexing,Popen,我是Python新手,不知道如何在脚本中操作vmstat。我有这段代码来获取vmstat的输出,经过大量研究,我无法找到在runqueue1=sample1[0]中将其指定为变量的方法 sample1 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE) stdout, stderr = sample1.communicate() stdout.splitlines()[1] time.sleep(1) sample
sample1 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE)
stdout, stderr = sample1.communicate()
stdout.splitlines()[1]
time.sleep(1)
sample2 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE)
stdout, stderr = sample2.communicate()
stdout.splitlines()[1]
time.sleep(1)
sample3 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE)
stdout, stderr = sample3.communicate()
stdout.splitlines()[1]
time.sleep(1)
sample4 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE)
stdout, stderr = sample4.communicate()
stdout.splitlines()[1]
time.sleep(1)
sample5 = Popen(['vmstat'] ,stdout=PIPE, stderr=PIPE)
stdout, stderr = sample5.communicate()
stdout.splitlines()[1]
time.sleep(1)
runqueue1 = sample1[0]
runqueue2 = sample2[0]
runqueue3 = sample3[0]
runqueue4 = sample4[0]
runqueue5 = sample5[0]
我遇到了这个回溯错误:
Traceback (most recent call last):
File "./cputool", line 106, in <module>
cputool()
File "./cputool", line 98, in cputool
runqueue1 = sample1[0]
TypeError: 'Popen' object does not support indexing
回溯(最近一次呼叫最后一次):
文件“/cputool”,第106行,在
cputool()
文件“/cputool”,第98行,在cputool中
runqueue1=sample1[0]
TypeError:“Popen”对象不支持索引
有没有人建议我如何以不同的方式安排它,以便它可以被索引/订阅?除了popen之外,还有其他方法可以获取vmstat的值,以便将其分配给变量吗?下面是一个简短的示例,我希望它可以帮助您了解基本知识:
import subprocess
import time
# delay between update in seconds for vmstats
interval = 2
# create the process
proc = subprocess.Popen(
['vmstat', str(interval)],
stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
while True:
try:
# read operations are *blocking*
# using readline() instead of read() or readlines()
# we could start processing a line as soon it is received
print 'output: %s' % proc.stdout.readline()
except BaseException, error:
proc.terminate()
print 'terminated by %s' % error
你想要什么价值观?e、 g.您希望
sample1[0]
返回什么?如果您正在寻找标准输出,您已经在进一步获取它:stdout,stderr=sample1.communicate()
mypipe=os.popen('find.exe.-type f')myvar=mypipe.readlines()