[Python-es] Módulo para tratar plantillas.

Javier Robles dfqjrp en unileon.es
Lun Ene 16 12:40:48 CET 2006


On Mon, 16 Jan 2006 11:15:44 +0100, Luis Miguel Morillas
<morillas en unizar.es> wrote:

> Mensaje citado por Javier Robles <dfqjrp en unileon.es>:
>
>> Hola a todos,
>>
>> Estoy utilizando ciertos programas que requieren ficheros de  
>> configuración
>> para su uso. El caso, es que los parámetros de dichos ficheros cambian  
>> en
>> cada ejecución, y es molesto editar cada fichero manualmente para  
>> cambiar
>> cosas como fechas o parámetrode ejecución.
>>
>> Por eso estaba pensando en crear plantillas para dichos ficheros y
>> mediante un programa crear los ficheros al vuelo. Actualmente hago algo
>> parecido (un poquito más simple de lo que pretendo ahora) con shell  
>> script
>> utilizando sed para sustituir ciertas líneas de una plantilla por  
>> valores
>> adecuados para la ejecución. Todo eso quiero sustituirlo por algo más
>> serio.
>>
>> ¿Existe algún módulo en Python que gestione y modifique plantillas? Mi
>> idea es tener ficheros de texto con "marcas" de modo que pueda hacer  
>> algo
>> como template.write (marca, value). ¿Existe o me pongo a picar?
>>
>> Gracias!
>>
> Hay un módulo para ficheros de configuración[1]. Yo prefiero hacerlo con  
> xml. En
> concreto uso Amara [2] para leer/escribir los ficheros.
>
> [1] http://docs.python.org/lib/module-ConfigParser.html
> [2] http://uche.ogbuji.net/tech/4suite/amara/
>
> Un saludo,
>

Los ficheros de configuración no tienen un formato estándar para usar
ConfigParser directamente sobre ellos. Podría almacenar con ConfigParser
el conjunto de valores que modifico habitualmente y luego generar el
fichero a partir de esos datos, pero necesitaría de todos modos una
plantilla.

Este es un ejemplo de uno de esos ficheros de config:

&record0
   input_file     ='../MM5-MPP/Run/MMOUT_DOMAIN3' /


&record1
   start_year     =  2005
   start_month    =    07
   start_day      =    28
   start_hour     =    00
   end_year       =  2005
   end_month      =    07
   end_day        =    29
   end_hour       =    00
   interval       =  7200 /

&record2
   pressure_bu_no_sfc_Pa = 100000 , 95000 , 90000 , 85000 , 80000 ,
                                    75000 , 70000 , 65000 , 60000 ,
                                    55000 , 50000 , 45000 , 40000 ,
                                    35000 , 30000 , 25000 , 20000 ,
                                    15000 , 10000  /

&record3
   print_info            = .false. /

En este la modificación habitual es la fecha, que es trivial, pero en
otros hay que tocar muchos parámetros. Guardar el número de línea con un
fichero de ejemplo me parece muy cutre. Yo pensaba algo como:

   start_year     =  <startyear>
   start_month    =  <startmonth>
   start_day      =  <startday>

y luego desde un script template.write('startyear', '2006')

Crear un fichero XML para guardar los parámetros y luego parsearlo para
generar el fichero de configuración me parece matar moscas a cañonazos.
Tampoco necesito tanta sofisticación...


-- 
Un saludo,
Javier Robles
Laboratorio de Física de la Atmósfera
Universidad de León
http://www.milugar.net
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es