[Python] python, crontab e caratteri non ascii

Valerio Pachera sirio81 a gmail.com
Mer 25 Maggio 2011 10:59:29 CEST


Ciao ragazzi/e,

ho fatto un script python che esegue il comando sensors;
estrare i valori di temperature dal suo output;
li scrive in un file di log assieme alla data (ad ogni esecuzione
scrive una riga nel file di log).

Beh...cosa centra con crontab?
Se eseguo lo script lanciandolo da riga di comando, scrive
correttamente i valori nel file di log,
se lo eseguo da crontab, stampa solo la data.

Questa è la funzone chiamata in causa:

def get_temperature(sensors):
        '''Restituisce una lista con i valori decimali delle temperature'''
        T = []
        for line in sensors.splitlines():
                if '°C' in line:
                        T.append ( float(line.split('+')[1].split('°')[0]) )
        return T

La lista T è vuota se lanciata da crontab.
Il primo 'if '°C' in line:' non trova la corrispondenza per via del
carattere del grado '°'.

Avete idea del motivo e come risolvere?
(Il workaround l'ho già trovato: cerco ' = ' al posto di '°C' e faccio
lo split su '.' al posto di '°').

Lavoro su debian lenny 64bit e python 2.5.
Lo script inizia con

#!/usr/bin/python
# -*- coding: utf-8-*-

Esempio del testo di cui faccio il parse

coretemp-isa-0007
Adapter: ISA adapter
Core 7:      +33.0°C  (high = +84.0°C, crit = +100.0°C)


Maggiori informazioni sulla lista Python