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 :

interpretation de caractères


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut interpretation de caractères
    Bonjour, cela fait un moment que je cherche comment m'en sortir sur un probleme d'interpretation de caractère dans une variable..

    Dans un script python, voici ce que j'exexute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     commands = [
            "/home/toto/script.sh -t " + action + " -u " + user + " -b " + dir + " -k " + key + " -s " + secret_key + ""
            ]
    Le problème c'est que dans ma variable secret_key que je récupère via un event (secret_key=event['SKEYID'], il y a un signe '+'
    La chaine de secret_key ressemble à:
    topeldopir+jkvpkdfo

    Quand mon code s'execute, il lance le script shell avec l'argument secret_key tel que: topeldopir jkvpkdfo
    Il m'a dégagé le '+' qu'il doit interpréter peut être comme un signe concat ou autre.

    Je ne sais plus quoi faire pour que l'ensemble de ma chaine y compris le '+' soit passer en argument de mon script shell.
    Merci pour votre aide.

  2. #2
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par cubepiege Voir le message
    Je ne sais plus quoi faire pour que l'ensemble de ma chaine y compris le '+' soit passer en argument de mon script shell.
    Merci pour votre aide.
    Bonjour

    Je ne sais pas si j'ai bien compris votre problème mais je pense qu'il suffit de mettre le '+' avec des guillemets " " pour qu'il soit considéré comme une chaine de caractères et non pas le signe de concaténation comme vous l'avez écrit.

  3. #3
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    les simples quotes que j'ai mis autour de + sont à titre d'info, il s'agit bien du signe + faisant partie de la chaine de caractère et non pas de '+'.
    Désolé je n'aurais pas du mettre de simple quote, cela peut prêter à confusion.
    La chaine concernée est bien : topeldopir+jkvpkdfo

    Je ne pense pas pouvoir rajouter des "" tel quel puisque la chaine est intégrée dans la variable secret_key. Celle ci tel que le montre l'exemple est imbriquée dans la fabrication d'une ligne de commande.
    Et cette variable est issue d'un event émis par l'outil postman

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Essaye avec des guillemets autour du mot de passe en entier.

    C'est un problème très courant en fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    vincent@djoliba:~/Vidéos$ cp Baden Baden.mp4 backup
    cp: impossible d'évaluer 'Baden': Aucun fichier ou dossier de ce type
    cp: impossible d'évaluer 'Baden.mp4': Aucun fichier ou dossier de ce type
    vincent@djoliba:~/Vidéos$ cp "Baden Baden.mp4" backup
    vincent@djoliba:~/Vidéos$

  5. #5
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par cubepiege Voir le message
    les simples quotes que j'ai mis autour de + sont à titre d'info, il s'agit bien du signe + faisant partie de la chaine de caractère et non pas de '+'.
    Désolé je n'aurais pas du mettre de simple quote, cela peut prêter à confusion.
    La chaine concernée est bien : topeldopir+jkvpkdfo

    Je ne pense pas pouvoir rajouter des "" tel quel puisque la chaine est intégrée dans la variable secret_key. Celle ci tel que le montre l'exemple est imbriquée dans la fabrication d'une ligne de commande.
    Et cette variable est issue d'un event émis par l'outil postman
    Ok,

    Quel est le type de la variable secret_key ?

    Si secret_key est un string en principe il ne devrait pas interpréter le + comme étant un caractère de concaténation.

    Pouvez vous vérifier le type de secret_key ?

  6. #6
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    En fait je viens de faire un print dans un script lambda (sur amazon) de type trigger. Celui ci reçoit un event de la part de postman car je lui envoie la fameuse chaine de caractère.
    En fait c'est la chaine enoyée par postman et le traitement fait par la fonction event de python, qui dégage le +, je ne sais pas pourquoi.
    J'utilise:
    secret_key=event['secret_key']
    print(secret_key) m'indique dans les logs le mot de passe topeldopir jkvpkdfo --> il manque le plus

    Si j'execute le trigger depuis amazon le print me sort bien topeldopir+jkvpkdfo

    J'en conclus que c'est postman qui me pose problème....

  7. #7
    Membre confirmé Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Par défaut
    Bon trouvé ! ouf! j'en ai bavé

    Postman depuis quelques versions n'interprète plus le signe + tel quel, il faut le remplacer par %2B , nan mais sérieux !!!

    Voilà pour ceux qui tomberait dans ce piège, si ca peut leur éviter d'en baver comme une armée d'escargot...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Caractère non interpreté, (petit carré)
    Par lasrevinu dans le forum C#
    Réponses: 2
    Dernier message: 12/07/2010, 13h19
  3. Newbie......compilateur et table de caractères
    Par Cyberf dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 21/08/2002, 14h29
  4. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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