• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

djthyrax

[Python] Sensors parsing

2 mensagens neste tópico

import commands

class sensor:
def __init__(self, id, details):
	self.id = id
	self.details = {}
	self.parseDetails(details)

def parseDetails(self, details):
	for detail in details:
		tmp = detail.split(":", 1)
		self.details[tmp[0]] = tmp[1].split()[0]

def getDetail(self, name):
	return self.details[name]

def getDetails(self):
	return self.details.keys()

def getId(self):
	return self.id

if __name__ == '__main__':
adapts = []

for adapt in (commands.getoutput("sensors")+"\n").split("\n\n")[:-1]:
	adapts.append(sensor(adapt.split("\n")[0], adapt.split("\n")[1:]))

for adapt in adapts:
	print "Adapt id: %s" % adapt.getId()
	details = adapt.getDetails()
	details.sort()
	for detail in details:
		print "%s -> %s" % (detail, adapt.getDetail(detail))
	print	

Isto pega no output do sensors:

[djthyrax@dawn ~]$ sensors
k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:  +34.0°C                                   

it8712-isa-0290
Adapter: ISA adapter
VCore 1:     +1.42 V  (min =  +0.00 V, max =  +4.08 V)  
VCore 2:     +0.00 V  (min =  +0.00 V, max =  +4.08 V)   ALARM
+3.3V:       +3.30 V  (min =  +0.00 V, max =  +4.08 V)  
+5V:         +5.03 V  (min =  +0.00 V, max =  +6.85 V)  
+12V:       +12.35 V  (min =  +0.00 V, max = +16.32 V)  
-12V:        -4.17 V  (min = -27.36 V, max =  +3.93 V)  
-5V:        -13.64 V  (min = -13.64 V, max =  +4.03 V)   ALARM
Stdby:       +4.87 V  (min =  +0.00 V, max =  +6.85 V)  
VBat:        +3.15 V
fan1:          0 RPM  (min =  811 RPM, div = 8)
fan2:          0 RPM  (min =  811 RPM, div = 8)
fan3:          0 RPM  (min =    0 RPM, div = 8)
M/B Temp:    +36.0°C  (low  =  -1.0°C, high = +127.0°C)  sensor = transistor
CPU Temp:    +42.0°C  (low  =  -1.0°C, high = +127.0°C)  sensor = transistor
Temp3:       +26.0°C  (low  =  -1.0°C, high = +127.0°C)  sensor = transistor
cpu0_vid:   +0.875 V

[djthyrax@dawn ~]$

E mete "tudo" num objecto. Neat eh?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está porreiro, não conhecia o módulo commands (normalmente é aconselhado usar o subprocess).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora