Guest User

Untitled

a guest
Jan 16th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. #!C:/Users/SDQ/AppData/Local/Programs/Python/Python36/python.exe
  2.  
  3. """
  4. Permet la création d'un tableau MarkDown
  5. sur base d'une liste de valeurs données ligne par ligne
  6. (24 données, 4 colonnes)
  7. """
  8.  
  9. liste, i, flag = [], 0, False
  10. for lg in open(__file__): # Pour chaque ligne du fichier
  11. lg = lg.rstrip()
  12. if flag == False: # Si l'on n'a pas encore atteint la ligne ### DATA ###
  13. if lg == "### DATA ###": # Teste la ligne
  14. flag = True # et passe à True une fois atteinte
  15. else: # Une fois atteinte, lit ligne par ligne
  16. lg = lg.replace("_", "\_").replace("# ", "") # Nettoie la ligne
  17. if i < len(liste): # Si l'index existe déjà
  18. liste[i].append(lg) # Ajoute à la sous-liste
  19. else: # Sinon
  20. liste.append([lg]) # Crée une nouvelle sous-liste avec lg comme 1er élément
  21. i = i + 1 if i < 5 else 0 # Si on atteint la 6e colonne, recommence à partir de la 1re
  22.  
  23. maxlengths = []
  24. for sousliste in liste: # Pour chaque sous-liste
  25. for i, x in enumerate([len(x) for x in sousliste]): # Récupère la longueur de chaque élément
  26. if i < len(maxlengths): # Si l'index existe
  27. if x > maxlengths[i]: # Et que la longueur de l'élément est la plus grande
  28. maxlengths[i] = x # Attribue sa longueur à longueur max
  29. else: # Si l'index n'existe pas
  30. maxlengths.append(x) # Définit la longueur comme longueur max
  31.  
  32. sortie = open("tableau.txt", "w") # Ouvre le fichier en sortie
  33. sortie.write("| | | | |\n") # Crée l'entête du tableau MarkDown (vide)
  34. lg = "|" + "|".join(["-" * x for x in maxlengths]) + "|" # Crée la ligne avec les tirets qui permet de générer le tableau en MarkDown
  35. sortie.write(f"{lg}\n") # Et l'écrit
  36.  
  37. for sousliste in liste: # Pour chaque sous-liste (i.e. chaque ligne)
  38. lg = "|"
  39. for j, col in enumerate(sousliste): # Pour chaque colonne
  40. lg += col.rjust(maxlengths[j]) + "|" # Ajoute autant d'espaces que nécessaires pour l'alignement
  41. sortie.write(f"{lg}\n") # Imprime la ligne
  42.  
  43. sortie.close() # Ferme le fichier
  44.  
  45. ### DATA ###
  46. # __add__
  47. # __bool__
  48. # __call__
  49. # __contains__
  50. # __del__
  51. # __delattr__
  52. # __delitem__
  53. # __enter__, __exit__
  54. # __get__, __set__, __delete__
  55. # __getattr__
  56. # __getattribute__
  57. # __getitem__
  58. # __iadd__
  59. # __index__
  60. # __init__
  61. # __iter__, __next__
  62. # __len__
  63. # __lt__, __gt__,__le__, __ge__,__eq__, __ne__
  64. # __new__
  65. # __or__
  66. # __radd__
  67. # __repr__, __str__
  68. # __setattr__
  69. # __setitem__
Add Comment
Please, Sign In to add comment