Partage
  • Partager sur Facebook
  • Partager sur Twitter

Slash et anti-slash

    1 janvier 2022 à 23:54:35

    Bonjour,

    Pourriez vous m'expliciter la différence entre // / \\ \ dans la description d'un chemin d'accès ?

    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2022 à 1:31:22

      Il y a deux choses.
      Sur Windows, on peut choisir indifféremment l'un ou l'autre. Mais ce n'est pas le cas sur les autres systèmes.
      Le '\' est reconnu de façon spéciale par Python.
      Si tu mets '\n' à la fin d'une chaîne, ça signifie une fin de ligne.
      Et encore là, ça n'est pas traduit de la même façon sur Windows ou ailleurs.
      Si je veux absolument mettre des '\' dans une variable Python qui désigne un chemin, je dois le doubler.
      Par exemple:
      path = "C:\\Users\\Einstein\\Documents\\Sources"
      ou bien avec des '/':
      path = "C:/Users/Einstein/Documents/Sources"
      • Partager sur Facebook
      • Partager sur Twitter

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

        2 janvier 2022 à 10:56:04

        Bonjour,

        C'est valable aussi avec d'autres langages comme le C

        le \ est une "escape sequence" qui permet d'introduire des trucs comme \t, \n, etc ...

        donc, comme le dit Pierrot, pour faire prendre en compte un \ dans un chemin, il faut mettre l'escape sequence \ devant

        -
        Edité par Phil_1857 2 janvier 2022 à 10:56:42

        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2022 à 13:25:09

          Phil_1857 a écrit:

          le \ est une "escape sequence" qui permet d'introduire des trucs comme \t, \n, etc ...

          donc, comme le dit Pierrot, pour faire prendre en compte un \ dans un chemin, il faut mettre l'escape sequence \ devant


          Ou encore utiliser une chaîne brute :)
          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2022 à 13:43:23

            madoukone a écrit:

            Pourriez vous m'expliciter la différence entre // / \\ \ dans la description d'un chemin d'accès ?


            Ce sont tous deux des séparateurs pour les répertoires du chemin. \ étant Windows et / plutôt Linux.

            Python accepte les / dans les noms de fichiers ou plutôt les chaînes de caractères correspondantes y compris sur Windows. Ca peut avoir un intérêt côté portabilité et ça évite de se prendre le chou avec les raw-strings et doubler ou pas le \.

            • Partager sur Facebook
            • Partager sur Twitter
              2 janvier 2022 à 17:46:48

              mps a écrit:

              madoukone a écrit:

              Pourriez vous m'expliciter la différence entre // / \\ \ dans la description d'un chemin d'accès ?


              Ce sont tous deux des séparateurs pour les répertoires du chemin. \ étant Windows et / plutôt Linux.

              Python accepte les / dans les noms de fichiers ou plutôt les chaînes de caractères correspondantes y compris sur Windows. Ca peut avoir un intérêt côté portabilité et ça évite de se prendre le chou avec les raw-strings et doubler ou pas le \.


              Oui, mais avec Python on peut utiliser os.sep

              • Partager sur Facebook
              • Partager sur Twitter
                2 janvier 2022 à 18:45:12

                Diablo76 a écrit:

                Oui, mais avec Python on peut utiliser os.sep


                Il sera plus lisible d'utiliser os.path.sep en évitant de réinventer la roue compte tenu des join, split,... qui existent déjà dans os.path:

                >>> import os
                >>> os.path.join('foo', 'bar', 'quux')
                'foo\\bar\\quux'
                >>>

                Les cas d'utilisation ne doivent pas être nombreux.

                • Partager sur Facebook
                • Partager sur Twitter
                  3 janvier 2022 à 10:25:27

                  Bonjour PascalOrtiz,

                  C'est vrai, au fait :  chemin = r'C:\.......'

                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 janvier 2022 à 14:30:45

                    c'est la chaine dite brute (raw string en langue de shakespeare) déjà évoquée plus haut

                    -
                    Edité par umfred 4 janvier 2022 à 14:30:55

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Slash et anti-slash

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    • Editeur
                    • Markdown