MatteB_01

desuetocorretto

Feb 13th, 2021
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. def main():
  2. INPUT = "testo.txt"
  3. OBSOLETE = "obsoleto.txt"
  4. OUTPUT = "nuovotesto.txt"
  5.  
  6.  
  7. try:
  8. with open(OBSOLETE, "r", encoding="utf-8") as file:
  9. obsolete = {}
  10. for line in file:
  11. lista = line.strip().split(" ")
  12. obsolete[lista[0]] = lista[1]
  13. except IOError:
  14. print("il file contenente le parole obsolete non è presente o il suo nome è errato")
  15.  
  16.  
  17. try:
  18. with open(INPUT, "r", encoding="utf-8") as file:
  19. testo = []
  20. for line in file:
  21. testo.append(line.strip())
  22. except IOError:
  23. print("il file contenente il testo non è presente o il suo nome è errato")
  24.  
  25.  
  26.  
  27. totParole, numObsolete = conteggio(testo, obsolete)
  28.  
  29. print(f"il numero di parole presenti nel testo è {totParole}")
  30. for parola in numObsolete.keys():
  31. print(f"{parola}: {numObsolete[parola]}")
  32.  
  33.  
  34.  
  35.  
  36. nuovoTesto = sostituzione(testo, obsolete)
  37.  
  38. with open(OUTPUT, "w", encoding="utf-8") as file:
  39. for riga in nuovoTesto:
  40. file.write(f"{riga}\n")
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50. def conteggio(testo, obsolete):
  51. counter = 0
  52. numObsolete = {}
  53.  
  54. for vocabolo in obsolete.keys():
  55. numObsolete[vocabolo] = 0
  56.  
  57. for line in testo:
  58. parole = line.split(" ")
  59. counter += len(parole)
  60. for parola in parole:
  61. if parola in numObsolete.keys():
  62. numObsolete[parola] += 1
  63. return counter, numObsolete
  64.  
  65.  
  66.  
  67. def sostituzione(testo, obsolete):
  68. nuovoTesto = []
  69. for line in testo:
  70. parole = line.split(" ")
  71.  
  72. for i in range(len(parole)):
  73. if parole[i] in obsolete.keys():
  74. parole[i] = obsolete[parole[i]]
  75. frase = " ".join(parole)
  76. nuovoTesto.append(frase)
  77.  
  78. return nuovoTesto
  79.  
  80. main()
Advertisement
Add Comment
Please, Sign In to add comment