3. Descartar 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.

Dissenya la funció següent i desa-la al mòdul metadades (fitxer metadades.py).

metadades.sense_metadades(nom_fitxer_amb, nom_fitxer_sense)

Crea el fitxer nom_fitxer_sense que conté només la capçalera i les dades del fitxer nom_fitxer_amb.

Paràmetres:
  • nom_fitxer_amb (str) – nom del fitxer amb metadades

  • nom_fitxer_sense (str) – nom del fitxer sense metadades

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

Descartem les metadades.

>>> sense_metadades('consum_elect.txt', 'consum_elect-sense.txt')
>>> with open('consum_elect-sense.txt', 'r') as f:
...     res = f.read()
>>> print(res) 
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


Si el fitxer amb metadades no en conté, els fitxer sense metadades és idèntic al fitxer amb de metadades.

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

>>> sense_metadades('sense_metadades.txt', 'sense_metadades-sense.txt')
>>> with open('sense_metadades-sense.txt', 'r') as f:
...     res = f.read()
>>> dades == res
True

Disposes de més tests al fitxer test-sense_metadades.txt.