Retour Partie 1

    Créer des fichiers en sortie et opérer un décompte sur le texte de ce fichier

    Créer un fichier en sortie
    Précédemment nous avons vu le code soucre une fois nettoyé, et ceci sur un fichier de résultat contenant le code source nettoyé. Comment cela a t-il été possible ?
    Nous continuons à utiliser une sortie en texte brut, mais on voudrait créer un fichier de sortie plus propre en évitant des problèmes liés à l'encodage. Nous allons donc revenir à notre sortie txt:
    Avec le fichier ouvert, on va mettre le texte déjà nettoyé :
      Opérer un décompte sur le texte de ce fichier
      Comme ci-dessus, nous allons créer un fichier en sortie pour afficher nos résultat. Un point pour lequel il faut tenir c'est que nous avons déjà créer un fichier en sortie par conséquent nous devons créer en second et faire attention à notre codage.
      Nous créons donc un second fichier que nous nommerons "infostat":
      Pour compter le nombre de caractères du texte de la page ,il faut utilisez la fonction "len"(fonction qui calcule la longueure d'une liste) sur la variable texte et écrire le résultat dans le fichier de sortie:
      Pour opérer des décomptes sur les mots du texte de la page , nous allons ajouter une liste des mots à notre page.Pour cela nous utilisons la fonction "split" du module "re".
      Segmenter le texte en mots
    • re.split(pattern, string[, maxsplit=0])
      L'expression régulière qui permet de couper les mots est simple : "\W+", "\W" correspond à un caractère quelconque, qui n'est pas alpha-numérique : cela inclut donc des espaces ou des symboles. Le + signifie "1 ou plus". On cherche donc des coupures où il y a 1 ou plus caractères non-alphanumériques.
      On va couper notre texte à ces endroits en faisant :
    • expr = re.compile("\W+",re.U)
    • liste = expr.split(texte)
    • print liste
    • --> Ajoutez ces trois lignes ci-dessus à la fin de votre script.
      Pour ajouter la liste des mots au fichier, il faut avant la fermeture du fichier, écrire les choses suivantes :
    • infostat.write("Le fichier contient "+str(len(liste))+" mots.\n")
    • infostat.write(" ".join(liste)) --> La fonction "join" est une fonction qui "joint" les éléments d'une liste avec le caractère qui précède.
      Compter le nombre de mots différents
      Pour savoir combien de mots différents le texte contient, on transforme la liste en un ensemble (set en anglais).
    • infostat.write("Le fichier contient "+str(len(liste))+" mots et "+str(len(set(liste)))+" mots différents.\n")
    • infostat.write(" ".join(set(liste)))
      N'oublions surtout pas de fermer le fichier à la fin du script
    • fichier2.close()