34 lines
837 B
Python
34 lines
837 B
Python
from ps_fields import *
|
|
import mongodb
|
|
|
|
def parsePsOutput(output):
|
|
data = output.split('\n')
|
|
data = list(filter(bool, [line.split() for line in data]))
|
|
header = data[0]
|
|
procs = []
|
|
|
|
for line in data[1:]:
|
|
proc = {}
|
|
for i in range(len(header)):
|
|
field = field_defs[header[i]]
|
|
value = line[i]
|
|
if i == len(header):
|
|
# combine command arguments together to one string
|
|
value = ' '.join(line[i:])
|
|
|
|
value = field['dtype'](value)
|
|
if 'mult' in field:
|
|
# mult if applicable
|
|
value *= field['mult']
|
|
|
|
proc[header[i]] = value
|
|
|
|
procs.append(proc)
|
|
return procs
|
|
|
|
def parseFile(fname):
|
|
f = open(fname, 'r')
|
|
data = f.read()
|
|
f.close()
|
|
return parsePsOutput(data)
|