3. Metadades¶
Un fitxer amb metadades està estructurat en tres parts consecutives:
metadades, capçalera i dades. El fitxer consum_elect.txt
n’és un exemple:
:Origen: https://inf2.etseib.upc.edu/_downloads/149e9dffad58b96db3e85525fcc28012/consum_elect.csv
: Descripció : consum d’electricitat durant alguns mesos de 2022.
:Tema: Energia
Data,Codi_Postal,Sector_Economic,Tram_Horari,Valor
2022-01-01,08001,Indústria,0-6,817
2022-01-01,08001,Indústria,6-12,942
2022-01-01,08001,Indústria,12-18,1145
En aquest exemple, les tres primeres línies contenen les metadades, la quarta, la capçalera i la resta, les dades.
En general, les línies que contenen metadades comencen amb el caràcter
dos punts (:), seguit del nom de la metadada, uns altres dos punts
i el valor de la metadada. La capçalera és la primera línia que no
comença per dos punts. Les dades són la resta de línies que van després de
la capçalera.
Com veiem a la segona línia de l’exemple anterior, poden haver-hi espais en blanc en qualsevol posició d’una línia amb metadades i el valor de la metadada pot contenir dos punts.
Dissenya la funció següent i desa-la al mòdul metadades (fitxer
metadades.py).
- metadades.extreu_metadades(nom_fitxer)¶
Extreu les metadades del fitxer amb metadades
- Paràmetres:
nom_fitxer (str) – nom del fitxer amb metadades
- Tipus de retorn:
- Retorna:
diccionari en què les claus són els noms de les metadades del fitxer nom_fitxer i els valors són els valors de les metadades.
Les claus i els valors del diccionari no han de tenir espais en blanc al començament ni al final.
Per exemple:
Contingut del fitxer. >>> print(dades) :Origen: https://inf2.etseib.upc.edu/_downloads/149e9dffad58b96db3e85525fcc28012/consum_elect.csv : Descripció : consum d’electricitat durant alguns mesos de 2022. :Tema: Energia Data,Codi_Postal,Sector_Economic,Tram_Horari,Valor 2022-01-01,08001,Indústria,0-6,817 2022-01-01,08001,Indústria,6-12,942 2022-01-01,08001,Indústria,12-18,1145 Extraiem les metadades. >>> md = extreu_metadades('consum_elect.txt') >>> md == { ... 'Origen': 'https://inf2.etseib.upc.edu/_downloads/149e9dffad58b96db3e85525fcc28012/consum_elect.csv', ... 'Descripció': 'consum d’electricitat durant alguns mesos de 2022.', ... 'Tema': 'Energia', ... } True Si el fitxer és buit, el diccionari de metadades també és buit. >>> with open('buit.txt', 'w') as f: pass >>> md = extreu_metadades('buit.txt') >>> md {} Si el fitxer no té metadades, el diccionari de metadades és buit. >>> dades = """\ ... Data,Codi_Postal,Sector_Economic,Tram_Horari,Valor ... 2022-01-01,08001,Indústria,0-6,817 ... """ >>> with open('sense_metadades.txt', 'w') as f: r = f.write(dades) >>> md = extreu_metadades('sense_metadades.txt') >>> md {}
Disposes de més tests al fitxer
test-extreu_metadades.txt.