martes, 27 de agosto de 2013

El siguiente programa filtra los datos importantes en un documento xml y los imprime de forma organizada:

http://codepad.org/z9D2wFv0

arch = """<listitem>
    <variable name="UUID">2bd9c142-9e91-4182-b85c-5bb616823bd9</variable>
    <variable name="Name">kurokysan</variable>
    <variable name="AccStatus">1</variable>
    <variable name="WWWFilter">JARSP</variable>
    <variable name="UseTemplate">1</variable>
    <variable name="Rights">0</variable>
    <variable name="AdmFilter">JARSP</variable>
    <variable name="QuotaDayEnabled">0</variable>
    <variable name="QuotaDayType"></variable>
    <variable name="QuotaDay">5242880</variable>
    <variable name="QuotaWeekEnabled">0</variable>
    <variable name="QuotaWeekType"></variable>
    <variable name="QuotaWeek">0</variable>
    <variable name="QuotaMonthEnabled">0</variable>
    <variable name="QuotaMonthType"></variable>
    <variable name="QuotaMonth">0</variable>
    <variable name="QuotaAction"></variable>
    <variable name="QuotaSendAlert">0</variable>
    <variable name="Lang">detect</variable>
    <variable name="DontUseLangTemp">0</variable>
    <variable name="DetectedLang"></variable>
  </listitem>"""


indice = 0
indice2 = 0
while indice < len(arch):
    init = arch.find('"',indice)
    final = arch.find('"',init + 1)
    init2 = arch.find('">',indice2)
    final2 = arch.find('<',init2+1)
    if init == -1:
        break
    indice = final + 1
    indice2 = final + 1
    if len(arch[init2+2:final2]) == 0:
        print arch[init+1:final] + ' = ' + str(None)
    else:
        print arch[init+1:final] + ' = ' + str(arch[init2+2:final2])


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
UUID = 2bd9c142-9e91-4182-b85c-5bb616823bd9
Name = kurokysan
AccStatus = 1
WWWFilter = JARSP
UseTemplate = 1
Rights = 0
AdmFilter = JARSP
QuotaDayEnabled = 0
QuotaDayType = None
QuotaDay = 5242880
QuotaWeekEnabled = 0
QuotaWeekType = None
QuotaWeek = 0
QuotaMonthEnabled = 0
QuotaMonthType = None
QuotaMonth = 0
QuotaAction = None
QuotaSendAlert = 0
Lang = detect
DontUseLangTemp = 0
DetectedLang = None

lunes, 19 de agosto de 2013

RECURSOS EN GOOGLE DEVELOPERS


En Google developers se puede encontrar tutoriales y videos para aprender Python. Hay una sección con ejercicios de práctica para revisar el tema dado.




Uno de los problemas propuestos es encontrar y organizar por orden alfabético los nombres más populares de niños nacidos en determinado año. Al lado de cada nombre debe aparecer el puesto en términos de popularidad. 




He aquí cómo resolví el ejercicio en Python. Aunque no se ve muy elegante sí muestra los resultados esperados.