Re: [Python] python xml

2011-05-25 Per discussione Lorenzo Sutton
Ciao,

nibbio padano wrote:
> salve, ho fatto qualche script in python nulla di complesso cose molto
> semplici per un
> comune. ora dovrei trasformare dei dati archiviati su un foglio di
> excel in dati xml con delle
> specifiche ben precise rilasciate dal ministero del tesoro su un file
> xds. per excel so che c'è
> la libreria cvs l'ho già usata e va bene, per l'xml esiste qualcosa
> che utilizzi il file xds per
> creare poi il file xml come specificato?.
Tra le tante, per XML ti consiglio di dare un'occhiata a lxml

Lorenzo.


> grazie in anticipo
> Gilberto
>   
>
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] python, crontab e caratteri non ascii

2011-05-25 Per discussione Valerio Pachera
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)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] python, crontab e caratteri non ascii

2011-05-25 Per discussione Alessandro Dentella
On Wed, May 25, 2011 at 10:59:29AM +0200, Valerio Pachera wrote:
> 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.

Non hai postato il codice di come apri il file che "parsi", io mi
concentrerei li. Quel file è codificato utf-8? Onestamente però non so come
mai si comporta differentemente. L'environment da riga di comando e da cron
è differente, non so dire se esiste una dipendenza da qualche variabile
d'ambiente in come viene aperto il file però...

sandro
*:-)
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] python, crontab e caratteri non ascii

2011-05-25 Per discussione Daniele Varrazzo
On Wed, 25 May 2011 10:59:29 +0200, Valerio Pachera 
wrote:

> 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)

Probabilmente dipende dal diverso env in cui viene eseguito sensors. Se
non è su console UTF-8 sembra non emetta il "°".

piro@bagheera:~$ echo $LANG
en_GB.UTF-8

piro@bagheera:~$ sensors | tail -2
temp8:+0.0°C   

piro@bagheera:~$ LANG=C sensors | tail -2
temp8:+0.0 C   


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Espressioni regolari

2011-05-25 Per discussione Walter Valenti


Ho delle stringe, dove i caratteri che non sono le lettere maiuscole e 
minuscole e i numeri,
vengono sostituiti da "__codice.ascii__" ovvero:
doppio underscore + codice ascii + doppio underscore.


Per decodificarli pensavo di usare le espressioni regolari.
Qualcosa del tipo
p=re.compile('__\d\d__|__\d\d\d__')
il problema è che quando voglio eseguire la "sub", non so come fare a passargli 
il numero (cod_ascii)

Idee ??

Walter

 

--
Per favore non inviatemi allegati in formato MS Office.
Utilizza alternativamente documenti in formato OpenDocument.


http://oinophilos.blogspot.com/___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Espressioni regolari

2011-05-25 Per discussione Daniele Varrazzo
On Wed, 25 May 2011 14:57:17 +0100 (BST), Walter Valenti
 wrote:
> Ho delle stringe, dove i caratteri che non sono le lettere maiuscole e
> minuscole e i numeri,
> vengono sostituiti da "__codice.ascii__" ovvero:
> doppio underscore + codice ascii + doppio underscore.
> 
> 
> Per decodificarli pensavo di usare le espressioni regolari.
> Qualcosa del tipo
> p=re.compile('__\d\d__|__\d\d\d__')
> il problema è che quando voglio eseguire la "sub", non so come fare a
> passargli il numero (cod_ascii)
> 
> Idee ??

La funzione re.sub (o il metodo sub dell'oggetto Pattern) supportano una
funzione come argomento per il "replace": la funzione prende in input
l'oggetto match e deve restituire una stringa che viene sostituita alla
parte matchata::

>>> rex = re.compile(r'__(\d+)__')
>>> rex.sub(lambda m: chr(int(m.group(1))), 'un__65__ pr__79__va')
  
   
'unA prOva'

Comunque, OT, se devi proprio inventarti un formato di codifica, prendi in
considerazione l'uso di un formato standard, tipo il percent encoding, che
è anche supportato dalla stdlib (vedi
http://docs.python.org/library/urllib.html#urllib.quote).

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Espressioni regolari

2011-05-25 Per discussione Walter Valenti
Funziona!!! perfetto.




- Messaggio originale -
> Da: Daniele Varrazzo 
> A: Walter Valenti ; Discussioni generali sul 
> linguaggio Python 
> Cc: 
> Inviato: Mercoledì 25 Maggio 2011 16:16
> Oggetto: Re: [Python] Espressioni regolari
> 
> On Wed, 25 May 2011 14:57:17 +0100 (BST), Walter Valenti
>  wrote:
>>  Ho delle stringe, dove i caratteri che non sono le lettere maiuscole e
>>  minuscole e i numeri,
>>  vengono sostituiti da "__codice.ascii__" ovvero:
>>  doppio underscore + codice ascii + doppio underscore.
>> 
>> 
>>  Per decodificarli pensavo di usare le espressioni regolari.
>>  Qualcosa del tipo
>>  p=re.compile('__\d\d__|__\d\d\d__')
>>  il problema è che quando voglio eseguire la "sub", non so come 
> fare a
>>  passargli il numero (cod_ascii)
>> 
>>  Idee ??
> 
> La funzione re.sub (o il metodo sub dell'oggetto Pattern) supportano una
> funzione come argomento per il "replace": la funzione prende in input
> l'oggetto match e deve restituire una stringa che viene sostituita alla
> parte matchata::
> 
>     >>> rex = re.compile(r'__(\d+)__')
>     >>> rex.sub(lambda m: chr(int(m.group(1))), 'un__65__ 
> pr__79__va')    
>                                                                           
>   
>     'unA prOva'
> 
> Comunque, OT, se devi proprio inventarti un formato di codifica, prendi in
> considerazione l'uso di un formato standard, tipo il percent encoding, che
> è anche supportato dalla stdlib (vedi
> http://docs.python.org/library/urllib.html#urllib.quote).
> 
> -- 
> Daniele Varrazzo - Develer S.r.l. 
> http://www.develer.com
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python