Mettre une tartine dans l'ordre puis dans le désordre

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher
Mettre une tartine dans l'ordre puis dans le désordre
Tartine ordre desordre.jpg


Pour modifier la page utiliser l'onglet Modifier avec formulaire.

Résumé Met une tartine dans l'ordre puis dans le désordre
Auteur(s) 01ivier
Licence CC-BY-SA 3
Date de création 01 décembre 2014


Intentions / Contexte

Pour la 182 ème tartine, j'ai écrit deux scripts. L'un qui met une tartine dans le désordre, et l'autre qui la remet dans l'ordre. Ce script ci enchaîne les deux autant de fois qu'on le souhaite.

Principe de fonctionnement

Le script ouvre un fichier initial "la-tartine-dans-l-ordre-0.txt" puis crée "la-tartine-dans-le_desordre-0.txt" à partir du premier, puis "la-tartine-dans-l-ordre-1.txt" à partir du second... et ainsi de suite...

Besoins / Compétences

Avoir envie de perdre son temps.

Documentation

Script

from random import shuffle


def je_melange(numero):

    liste_tartine = []

    with open ("la-tartine-dans-l-ordre-{0}.txt".format(numero), 'r') as la_tartine_dans_l_ordre:

        for ligne in la_tartine_dans_l_ordre:

            liste_tartine.append(ligne)

    desordre = range(len(liste_tartine))
    shuffle(desordre)

    with open ("la-tartine-dans-le-desordre-{0}.txt".format(numero), 'w') as la_tartine_dans_le_desordre:

        for numero in desordre:

           la_tartine_dans_le_desordre.write(str(numero).zfill(3) + " " + liste_tartine[numero])


def j_ordonne(numero):

    dico_tartine = {}

    with open ("la-tartine-dans-le-desordre-{0}.txt".format(numero), 'r') as la_tartine_dans_le_desordre:

        for ligne in la_tartine_dans_le_desordre:

            dico_tartine[int(ligne[:3])] = ligne[4:]
            
    with open ("la-tartine-dans-l-ordre-{0}.txt".format(numero+1), 'w') as la_tartine_dans_l_ordre:

        for numero in range(len(dico_tartine)):

           la_tartine_dans_l_ordre.write(dico_tartine[numero])


for numero in range(17394):

    je_melange(numero)
    j_ordonne(numero)