Partage
  • Partager sur Facebook
  • Partager sur Twitter

copier de texte dans une variable

Sujet résolu
    25 novembre 2020 à 18:06:36

    Bonjour à tous,

    Je suis en train de coder un programme en python (je suis débutant en la matière...) et voici mon problème : Je ne trouve pas comment faire en sorte que mon programme copie le contenu d'un fichier texte, dans une de ses variables, en chaîne de caractère.

    Pourriez vous m'aider ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      25 novembre 2020 à 18:16:46

      Voici la doc pour ça : https://docs.python.org/fr/3.9/tutorial/inputoutput.html#reading-and-writing-files

      C'est assez simple, une fois le fichier ouvert il suffit d'appeler la méthode read sur le fichier.

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        25 novembre 2020 à 18:36:49

        J'ajoutte que le texte est formé de toutes les lignes du fichier séparées par des caractères '\n'.
        On peut générer une liste de "lignes" ou chaînes avec la commande split:
        file=open(...)
        text=file.read().split('\n')
        for line in text:
        ...
        Le lien suggère d'utiliser 'with'. Ce qui est une bonne idée à moins d'être certain de ce qu'on fait.
        :
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          25 novembre 2020 à 20:04:56

          @PierrotLeFou, il y a plus simple pour parcourir les lignes 

          file=open(...)
          for ligne in file:
              print(ligne)
          

          bien sûr il faut que le fichier soit ouvert pour ça, alors que ta méthode permet de le faire aussi après fermeture du fichier; donc selon les besoins et les contraintes, on peut utiliser l'une ou l'autre.

          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2020 à 11:15:20

            Merci beaucoup de m'avoir aidé !

            finalement j'ai compris. J'ai juste deux autres petits problèmes :

            Je suis sur mac et lorsque je l'execute dans le terminal, ce n'est pas \n qui s'affiche mais uniquement   \   Est ce que ça change qqch ?

            Le deuxième problème est les accents... Est ce que c'est possible de ne pas prendre en compte les accents du texte que l'on veut copier ?

            Merci d'avance !

            • Partager sur Facebook
            • Partager sur Twitter
              28 novembre 2020 à 18:42:52

              Je ne vois pas ce que tu veux dire par "afficher" les '\n', ce sont les fins de ligne. On passe à la ligne suivante.
              Pour afficher un '\', il faut entrer '\\'.
              Pour ce qui est des caractères accentués, je ne suis pas sur un Mac, mais sur Windows.
              Il faut qu'il y ait coincidence entre ce que tu tapes dans ton éditeur, ce que comprend Python, et ta console.
              Je peux afficher facilement des caractères accentués en mettant tout le monde en Utf-8.
              Il me semble qu'il y avait une commande dans GNU sed pour convertir un code dans un autre, mais ça ne marche pas avec les regex de Python.
              Quelqu'un a une autre idée?
              • Partager sur Facebook
              • Partager sur Twitter

              Le Tout est souvent plus grand que la somme de ses parties.

                28 novembre 2020 à 22:36:30

                TheoRaccoci a écrit:

                Je suis sur mac et lorsque je l'execute dans le terminal, ce n'est pas \n qui s'affiche mais uniquement   \   Est ce que ça change qqch ?

                Peut être que c'est la façon que le terminal d'OSX utilise pour signaler qu'il passe à la ligne non parce qu'il a vu "fin de ligne" mais parce que la ligne est trop longue...

                TheoRaccoci a écrit:

                Le deuxième problème est les accents... Est ce que c'est possible de ne pas prendre en compte les accents du texte que l'on veut copier ?

                Une fois la chaine de caratcères lues, vous êtes dans le monde Unicode. Si vous voulez supprimer les accents, unicodedata.normalize est fait pour vous.

                • Partager sur Facebook
                • Partager sur Twitter

                copier de texte dans une variable

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown