IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème de backslash


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut Problème de backslash
    Bonjour,

    Malgré mes recherches sur le sujet je ne parviens pas à trouver de solution à mon problème. Pour info, j'utilise python 2.4 sous Windows XP 2002 SP2.

    Je crée un script en python qui récupère des variables d'un autre programme, notamment un chemin d'accès, sous la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = 'D:\Travail\test'
    Ce chemin est choisi par l'utilisateur du script et change donc à chaque utilisation. Mon problème est que dans ce cas, le '\t' est interprété par Python comme une tabulation, ce qui pose problème pour la suite des opérations.

    J'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin.replace('\\','/')
    sans succès, puisque seulement le 1er backslash est remplacé. Je ne sais pas comment utiliser les rawstring dans ce cas, puisque mon chemin est déjà dans une variable, que je ne peux pas modifier en amont. J'espère que ces explications sont claires?

    Quelqu'un aurait-il une solution qui me permettrait d'éliminer ou doubler tous les backslash de ma variable?

    Merci,

    Julie.

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Pour ajouter des ' \ ' à ta chaine une simple boucle ' for ' peut faire l'affaire, si tu prends comme indice ' range' le nombre de caractères de cette chaine.
    Il est facile ensuite de tester chaque caractère et d'ajouter un ' \ ' .

    Pour les suprimer, il y a la fonction ' .split(separateur) ' qui te donne une liste.
    C'est aussi simple de reconstituer une chaine à partir de cette liste.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Merci pour ta réponse Gamal.

    Cependant, Python considère le '\t' de chemin comme un seul caractère (la longueur de ma chaîne est de 14 et non 15).

    Donc avec la fonction split, je n'obtiens que 2 éléments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    chemin = 'D:\Travail\test'
    hop = chemin.split('\\')
    >>> print hop
    ['D:', 'Travail\test']
    De même, si j'utilise une boucle for, je ne trouve qu'un seul backslash, le 2ème n'étant pas reconnu comme tel.

    D'autres idées?

  4. #4
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Ton programme récupère comment la variable de l'autre programme (qui est un programme python ?) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 7
    Par défaut
    Je vais essayer d'expliquer ça du mieux que le peux, mais je ne suis pas sûr de comprendre moi-même tout le processus...

    J'utilise en fait un logiciel de SIG (ArcGIS), qui offre la possibilité de créer des scripts en Python (Python est fourni avec ce logiciel). Je spécifie donc à ArcGIS pour chaque script les paramètres à demander à l'utilisateur, et ArcGIS crée directement une petite interface graphique où l'utilisateur peut remplir ces paramètres. Pratique! Je les récupère ensuite dans mon script, en utilisant 'chemin = sys.argv[1]' par exemple, si mon chemin est le 1er paramètre de mon script.

    Voilà, j'espère que c'est clair?

  6. #6
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    je dirai que le problème vient de l'autre programme qui doit interpréter la chaîne de caractères qu'il récupère (au lieu de la considérer comme une chaîne brute). Tu n'as aucune maîtrise sur ce programme ou cette interface graphique ?

    tu pourrais toujours tenter de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin.replace('\t','\\')
    mais il faut faudrait aussi revoir tous les autres cas ('\n', ...)

Discussions similaires

  1. Problème avec les double backslash
    Par vinystic dans le forum Paradox
    Réponses: 2
    Dernier message: 08/10/2012, 15h30
  2. JSON from PHP to Silverlight problème avec les BackSlash's
    Par s.toubal dans le forum Silverlight
    Réponses: 4
    Dernier message: 16/02/2012, 14h43
  3. Réponses: 3
    Dernier message: 09/01/2011, 09h30
  4. Problème double backslash
    Par 0x0000091 dans le forum C++
    Réponses: 13
    Dernier message: 13/08/2009, 12h03
  5. [RegEx] Problème avec les backslashes
    Par Shuny dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2007, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo