Mettre une tartine dans le désordre

Ce wiki a été archivé en 2018.

Le nouveau wiki se trouve à: ressources.labomedia.org

Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia.

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


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

Résumé Permet de mettre une tartine 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, je souhaite proposer une tartine dans le désordre.

Principe de fonctionnement

Un script en python lit le fichier "tartine.txt" et met toutes ses lignes dans le désordre en ajoutant le numéro initial de chaque ligne au début afin de permettre leur remise dans l'ordre.

Besoins / Compétences

Python

Documentation

Le script

# -*- coding: utf-8 -*-

from random import shuffle

# On crée une liste vide
liste_tartine = []

# On ouvre le fichier tartine.txt et on le place
# dans une variable que l'on appelle la_tartine_dans_l_ordre
with open ("tartine.txt", 'r') as la_tartine_dans_l_ordre:

    # Pour chacune des lignes de la_tartine_dans_l_ordre...
    for ligne in la_tartine_dans_l_ordre:

        # ... on les ajoute à la liste
        liste_tartine.append(ligne)

# On crée une liste allant de 0 à X-1
# X étant le nombre de ligne dans la tartine
desordre = range(len(liste_tartine))

# On met cette liste dans le désordre
shuffle(desordre)

# On crée un fichier tartine_en_desordre.txt
with open ("tartine_en_desordre.txt", 'w') as la_tartine_dans_le_desordre:

    # Pour chaque élément de la liste 'desordre'
    for numero in desordre:

        # On écrit dans tartine_en_desordre.txt la ligne qui lui correspond
        # en ajoutant son numéro devant, complété par des zéros
        # pour être sûr d'avoir 3 caractères
        la_tartine_dans_le_desordre.write(str(numero).zfill(3) + " " + liste_tartine[numero])