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 :

tester un antislash


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut tester un antislash
    Bonjour,

    Je débute en python et je voudrais tester la présence d'antislash dans un fichier texte. Je lis donc les caractères dans la variable c et ensuite je fais

    if ( c == '\\' ):

    Hélas, ni cela, ni tous les autres essais, à base de raw string ou pas, ne marchent. Je pourrais faire ça en C mais comme je suis en train d'apprendre python, j'aimerais bien une solution. Quelqu'un en a-t-il une à me proposer ?

    Merci de votre aide,

    Camille

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne sais pas avec quel Python ça se passe, mais avec Python 2.7, ça marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for car in "abc\\efgh":
        if car=='\\':
            print "==>", car
    Ce qui donne bien:


  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut tester un antislash
    Bonjour Tyrtamos,

    Il semble que le comportement soit différent en python3 ; voici mes essais sur votre script :

    [camille@localhost python]$ python2 essai.py
    ==> \
    [camille@localhost python]$ python3 essai.py
    File "essai.py", line 5
    print "==>", car
    ^
    SyntaxError: invalid syntax

    Entre temps, j'ai réussi, non pas à résoudre le problème mais à le contourner. J'ai utilisé

    ligne = f.readline()

    au lieu de

    c=f.read()

    et ensuite, sur les caractères de ligne, il est possible d'utiliser

    if( ligne[i] == '\\' ):

    sans problèmes.

    Merci pour votre réponse et bonne soirée,

    --
    Camille

  4. #4
    Membre Expert

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Par défaut
    Oui, en py3, print est une fonction, il faut utiliser des parenthèses…

    Sinon, quel que soit le python sous le capot, la façon “canonique” de déterminer si une lettre (ou un bout de texte) se trouve dans un str, c’est l’opérateur “in”, qui évite d’avoir à boucler sur chaque lettre*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    text = "A little \\test"
    print("\\" in text)
    print("little" in text)
    print("funny" in text)
    donne…


  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut
    Citation Envoyé par mont29 Voir le message
    la façon “canonique” de déterminer si une lettre (ou un bout de texte) se trouve dans un str, c’est l’opérateur “in”, qui évite d’avoir à boucler sur chaque lettre
    Ok merci pour le tuyau qui pourra m'être utile pour la suite de mon apprentissage de python. Mais sans doute pas là car, pour le reste du traitement, je dois de toute façon boucler sur chaque lettre.

    Cordialement,

    --
    Camille

Discussions similaires

  1. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 12h10
  2. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  3. [VB6] [Interface] Tester le Type de Controle
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 16/09/2002, 09h51
  4. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55
  5. Tester connexion Internet active sous Windows
    Par Altau dans le forum Développement
    Réponses: 3
    Dernier message: 12/08/2002, 12h43

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