.. module:: vacunes Vacunes ------- La informació sobre la vacunació a diferents comarques de Catalunya s'emmagatzema a un fitxer on cada línia representa a una persona i està formada pel sexe, la comarca, les dosis que porta posades, la data de vacunació i el fabricant, tot separat per punt i coma (``;``). Les dates estan representades amb el format ``dd/mm/aaaa``. Per exemple: .. literalinclude:: vac.txt Per resoldre aquest exercici has de dissenyar les funcions següents i desar-les al mòdul :mod:`vacunes` (fitxer :file:`vacunes.py`): .. function:: filtra_fitxer(nom_f_dades,nom_f_sort,a) Donat un string ``nom_f_dades`` amb el nom d'un fitxer amb dades de vacunació com el descrit anteriorment, un altre string ``nom_f_sort`` amb el nom d'un segon fitxer i un enter ``a``, escriu al fitxer anomenat ``nom_f_sort`` les dades del primer fitxer corresponents a l'any ``a``, en el mateix format que l'original però només amb la informació de sexe, comarca i fabricant. Per exemple, donada la crida .. code-block:: python filtra_fitxer('vac.txt','vac_filtrat.txt',2021) a on ``vac.txt`` és el fitxer de l'exemple anterior (:download:`vac.txt`), la funció crearia el fitxer ``vac_filtrat.txt`` amb el següent contingut: .. literalinclude:: vac_filtrat.txt Disposeu de tests al fitxer :download:`test-filtra-fitxer.txt`. | .. function:: classifica(nomf_filtrat) ``nomf_filtrat`` és el nom d'un fitxer (string) de vacunació *com el que escriu la funció anterior*, és a dir, només amb la informació de sexe, comarca i fabricant. Retorna un diccionari de comarques creat a partir de les dades contingudes al fitxer. En aquest diccionari, cada clau és una tupla amb una comarca i un fabricant i cada valor una llista de dos elements amb el nombre de dones i homes respectivament vacunats en cada comarca i amb els diferents fabricants. Per exemple, pel fitxer de l'exemple anterior (:download:`vac_filtrat.txt`), la crida: .. code-block:: python classifica('vac_filtrat.txt') retornaria el següent diccionari: .. code-block:: python {('ALT EMPORDA', 'BioNTech / Pfizer'): [2, 0], ('CERDANYA', 'BioNTech / Pfizer'): [0, 2], ('CERDANYA', 'Oxford / AstraZeneca'): [1, 0], ('BERGUEDA', 'BioNTech / Pfizer'): [1, 1]} Disposeu de tests al fitxer :download:`test-classifica.txt`.