#1 Le 08/09/2008, à 11:02
- neo49
[Résolu] Modification script python
Salut , je cherche à modifier quelques petits trucs dans un desklet seulement je bloque :
# get fan speed information and display in a meter
class FanSpeedMeter (ACPIMeter):
def create(self, location, basedir, config_dictionary):config_dictionary["base text"] = ("Ventilateur",)
config_dictionary["value text length"] = (6,)
self.max_fan = config_dictionary["max_fan"]
ACPIMeter.create(self, location, basedir, config_dictionary)
def getMeterValues(self):
read_value = float(file(self.file).read().strip())
text_value = '%.0f' % (read_value)
krell_value = float(text_value)/self.max_fanreturn [krell_value,], [text_value,]
# get CPU temperature information and display in a meter
class TemperatureMeter (ACPIMeter):
def create(self, location, basedir, config_dictionary):config_dictionary["base text"] = ("Temperature",)
config_dictionary["value text length"] = (6,)
self.max_temp = config_dictionary["max_temp"]
ACPIMeter.create(self, location, basedir, config_dictionary)
def getMeterValues(self):
read_value = float(file(self.file).read().strip())
text_value = '%.0f' % (read_value/1000)
krell_value = float(text_value)/self.max_tempreturn [krell_value,], [text_value,]
class EventHandler (adesklets.Events_handler):
Je souhaiterais rajouter "tr/min" pour le fan speed et "°C" pour la temprérature, je sais que ça se trouve dans "text value" mais apres que faut-il rajouter et où... . Merci d'avance
Dernière modification par neo49 (Le 08/09/2008, à 12:37)
Hors ligne
#2 Le 08/09/2008, à 12:08
- tshirtman
Re : [Résolu] Modification script python
tu n'as pas donné le code en entier, mais je suppose qu'on peut faire ça.
return [krell_value,], [text_value+"tr/min",]
return [krell_value,], [text_value+"°C",]
par contre il risque de t'embeter pour le "°"
dans ce cas il faut que tu ajoute une ligne
# coding: utf-8
en DEUXIEME ligne du fichier
(la première est "#!/usr/bin/env python" en général)
Hors ligne
#3 Le 08/09/2008, à 12:37
- neo49
Re : [Résolu] Modification script python
Merci beaucoup c'est bon .
Hors ligne
#4 Le 08/09/2008, à 12:38
- aleph
Re : [Résolu] Modification script python
>>>
>>> read_value = 1234.0
>>> text_value = '%.0f %s' % (read_value, 'tr/min')
>>> print text_value
1234 tr/min
>>> #ou bien
>>> text_value = '%.0f tr/min' % (read_value)
>>> print text_value
1234 tr/min
>>> #ou bien
>>> text_value = '%.0f%s' % (read_value, ' tr/min')
>>> print text_value
1234 tr/min
>>> #mieux (à mon goût)
>>> unit = 'tr/min'
>>> read_value = 1234.0
>>> text_value = '%.0f %s' % (read_value, unit)
>>> print text_value
1234 tr/min
>>> #str + str -> pas bon
>>>
#5 Le 08/09/2008, à 13:37
- tshirtman
Re : [Résolu] Modification script python
aleph: j'avais pensé le faire là aussi au début, mais le fait que la ligne suivante s'appuis sur le résultat et utilise un float() aurais fait crasher...
Hors ligne
#6 Le 08/09/2008, à 15:28
- aleph
Re : [Résolu] Modification script python
aleph: j'avais pensé le faire là aussi au début, mais le fait que la ligne suivante s'appuis sur le résultat et utilise un float() aurais fait crasher...
Excellente remarque, je ne l'avais pas vu ! Donc,
def getMeterValues(self):
# float
read_value = float( file(self.file).read().strip() )
# format, str
text_value = '%.0f tr/min' % (read_value)
# utilisation de read_value (déjà un float) au lieu de text_value!
# il semblerait que le but de la manoeuvre était d'arrondir la valeur!
# float
krell_value = round(read_value) / self.max_fan
# renvoi des valeurs, virgules inutiles
# un 2-tuple de deux listes à un élement chacune !?
return [krell_value], [text_value]
ou
def getMeterValues(self):
read_value = float( file(self.file).read().strip() )
return ([round(read_value) / self.max_fan], ['%.0f tr/min' % (read_value)])
#7 Le 08/09/2008, à 16:12
- tshirtman
Re : [Résolu] Modification script python
En même temps ma solution est plus simple a comprendre et à modifier plus tard ^^.
Hors ligne
#8 Le 08/09/2008, à 19:37
- aleph
Re : [Résolu] Modification script python
En même temps ma solution est plus simple a comprendre et à modifier plus tard ^^.
Tout à fait.
Le code de base proposé étant couci-couça, mon but était de proposer, à qui veux bien être intéressé, une méthode un peu plus propre.
#9 Le 08/09/2008, à 19:50
- tshirtman
Hors ligne