Partage
  • Partager sur Facebook
  • Partager sur Twitter

Remplacer élément d’une liste python

Sujet résolu
    23 mai 2018 à 19:20:52

    Bonjour, je dois faire un projet pour le BAC en isn, cependant je bloque sur un petit truc. 

    En gros j’ai une liste dans mon programme qui comporte des noms de fichier que j’importe auparavant 

    un exemple : liste=["flan au caramel.txt","cookies.txt","tarte aux pommes.txt"]

    Je voulais savoir s’il était possible de supprimer tous les ".txt" 

    C’est principalement une question d’esthetique puisqu’à un moment je demande à l'utilisateur de choisir une des recettes et je préférerais que ce soit affiché « cookies » plutot que « cookies.txt »

    Si quelqu’un a la réponse, merci d’avance !

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      23 mai 2018 à 19:38:17

      Le module pathlib est sympa pour faire cela

      >>> from pathlib import PurePath
      >>> p = "flan au caramel.txt"
      >>> PurePath(p).stem
      'flan au caramel'
      

      Le reste est simple, j'aime bien les listes comprehensions,

      >>> liste=["flan au caramel.txt","cookies.txt","tarte aux pommes.txt"]
      >>> [PurePath(p).stem for p in liste]
      ['flan au caramel', 'cookies', 'tarte aux pommes']
      



      • Partager sur Facebook
      • Partager sur Twitter
        23 mai 2018 à 19:45:31

        oldProgrammer a écrit:

        Le module pathlib est sympa pour faire cela

        >>> from pathlib import PurePath
        >>> p = "flan au caramel.txt"
        >>> PurePath(p).stem
        'flan au caramel'
        

        Le reste est simple, j'aime bien les listes comprehensions,

        >>> liste=["flan au caramel.txt","cookies.txt","tarte aux pommes.txt"]
        >>> [PurePath(p).stem for p in liste]
        ['flan au caramel', 'cookies', 'tarte aux pommes']
        



        Ah oui merci ça a l’air pas mal, seulement quand je lance le programme, il y a une erreur disant qu’il n’y a pas de module pathlib 

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          23 mai 2018 à 19:52:21

          C'est que tu es en dessous de la version 3.4, c'est pourtant un minimum maintenant.

          Utilises os.path alors

          >>> import os.path as path
          >>> [path.splitext(p)[0] for p in liste]
          ['flan au caramel', 'cookies', 'tarte aux pommes']
          



          • Partager sur Facebook
          • Partager sur Twitter
            23 mai 2018 à 19:53:19

            Elle est dispo que dans Python3 je crois, donc si tu es en Python 2 c'est normal.
            • Partager sur Facebook
            • Partager sur Twitter

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

              23 mai 2018 à 20:03:54

              oldProgrammer a écrit:

              C'est que tu es en dessous de la version 3.4, c'est pourtant un minimum maintenant.

              Utilises os.path alors

              >>> import os.path as path
              >>> [path.splitext(p)[0] for p in liste]
              ['flan au caramel', 'cookies', 'tarte aux pommes']
              



              Effectivement, je suis en 3.2 mais cela marche, je vous remercie!!!

              • Partager sur Facebook
              • Partager sur Twitter

              Remplacer élément d’une liste python

              × 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