archi_ecriture_an~20171217-164929.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. #importez module
  4. import random
  5. #déclarez une liste
  6. diff_words = []
  7. #déclarez un nouveau dictionnaire
  8. aleatoire = {}
  9. #Créez un dictionnaire
  10. permutations = {
  11. 'ff' : 'ph' ,
  12. 'qu' : 'kh' ,
  13. 'ss' : 'ç' ,
  14. 'ch' : 'sh' ,
  15. 'il' : 'yl' ,
  16. 'ain' : 'un' ,
  17. 'li' : 'ly' ,
  18. }
  19. #Ouvrir un texte comme matériau brut
  20. with open("texte_source.txt", "r", encoding="ISO-8859-1") as source:
  21. # lire chaque ligne
  22. for line in source:
  23. # séparer la ligne en liste de mots
  24. words = line.split(" ")
  25. # pour chaque mot de la liste de mots
  26. for word in words:
  27. # pour chaque élément dans le dictionnaire
  28. for key, value in permutations.items():
  29. # vérifier si les clefs du dictionnaire "permutations" figurent dans les mots de la liste
  30. if key in word:
  31. # rajouter les clefs et les valeurs dans le dictionnaire "aleatoire"
  32. aleatoire[key] = value
  33. # si il y a des changements il y a donc un dictionnaire
  34. if aleatoire:
  35. # transformer le dictionnaire "aleatoire" en liste pour pouvoir aller indexer
  36. liste = list(aleatoire.items())
  37. print(liste)
  38. # choisir aléatoirement une des permutations de la liste à appliquer au mot
  39. result = random.choice(liste)
  40. print("choix aleatoire" , result)
  41. # remplacer la clef par sa valeur dans le dictionnaire
  42. newword = word.replace(result[0], result[1])
  43. print("remplacement", newword)
  44. # rajoutez le mot à la liste nouvelle
  45. diff_words.append(newword)
  46. else:
  47. diff_words.append(word)
  48. aleatoire.clear()
  49. # écrire la nouvelle liste comme chaîne de caractères dans un fichier texte
  50. with open("texte_dest.txt", "w", encoding = "utf-8") as destination:
  51. destination.write(' '.join(diff_words))