Corrector de llenguatge (fitxers)¶
Reprenem l’exercici Corrector de llenguatge. Ara cal que tant els sinònims com el text a corregir estiguin emmagatzemats en fitxers.
Descarrega el mòdul corrector i afegeix-hi les funcions
següents:
- corrector.llegeix_sinonims(nom_fitxer)¶
nom_fitxer és el nom d’un fitxer de text en què cada línia conté dues paraules com a mínim. La primera paraula es considera políticament incorrecte i la resta són sinònims políticament correctes.
La funció retorna un diccionari com el de la funció
sinonims().Per exemple, si el fitxer
sinonims.txtconté les línies següents:bonyut malgirbat irregular sapastre incompetent capsigrany curt inhàbil bufanúvols somiador ximplet beneit bonhome tararot belluguet turbulent esvalotat
Aleshores:
>>> dicc = llegeix_sinonims('sinonims.txt') >>> dicc == { ... 'bonyut': ['malgirbat', 'irregular'], ... 'sapastre': ['incompetent'], ... 'capsigrany': ['curt', 'inhàbil'], ... 'bufanúvols': ['somiador'], ... 'ximplet': ['beneit', 'bonhome'], ... 'tararot': ['belluguet', 'turbulent', 'esvalotat'], ... } True
Nota
Un cop obert el fitxer, prova de cridar la funció
sinonims() amb l’objecte fitxer com a
argument.
- corrector.corregeix_fitxer(nomf_sinonims, nomf_text, nomf_corregit)¶
nomf_sinonims és el nom d’un fitxer de paraules políticament incorrectes i sinònims políticament correctes com el de
llegeix_sinonims(). nomf_text és el nom d’un fitxer que conté el text a corregir i nomf_corregit és el nom del fitxer amb el text corregit.La funció escriu en el fitxer nomf_corregit el text de nomf_text un cop corregides les paraules políticament incorrectes d’acord amb els sinònims de nomf_sinonims.
Per substituir una paraula políticament incorrecta per un sinònim cal seguir el mateix criteri que en la funció
corregeix().Per exemple, si el fitxer
text_pi.txtconté el test següent:Un bonyut que era un sapastre va anar a cal capsigrany però el bufanúvols que era un ximplet va acabar essent un tararot
Aleshores:
>>> corregeix_fitxer('sinonims.txt', 'text_pi.txt', 'text_pc.txt') >>> with open('text_pc.txt', 'r') as f: ... print(f.read()) Un malgirbat que era un incompetent va anar a cal inhàbil però el somiador que era un beneit va acabar essent un belluguet
Nota
La funció corregeix_linia() et pot resultar
útil.
Nota
Disposes de jocs de proves al fitxer
test-corrector.txt i d’una solució al fitxer
corrector.py