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 :

differencier '\x76' et 'v'


Sujet :

Python

  1. #1
    Membre chevronné
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut differencier '\x76' et 'v'
    Bonjour à tous

    je travaille sur des images tif , après ouverture:

    obimg = open("monimage","r")
    obimg.read()


    j'obtiens quelque chose du genre :

    '\x22' '\x4a' '\x21 ' 'v' '\x42' '\x23' '\x12' 'v' '\x42' '\x23' '\x12'

    J'aimerai pouvoir ne garder de cette serie que les caractères au format '\xnn'
    mais malheureusement ce genre de structure ne filtre rien:

    if '\x00' >= caractere >= '\xff'

    (les 'v' sont aussi gardés)

    merci beaucoup pour votre aide.
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

  2. #2
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Garde ceux dont la longeur est 4:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ''.join(x for x in str if len(x) > 4)
    Edit: mon code marchera pas, '\xFF' est considéré comme étant de longueur 1. Pourquoi ça te gêne le 'v'?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Bonjour,

    pas tout a fait: len('\x22')==1

    A la rigueur, le test serait '\\x' in repr(caractere), mais apres tout, en ASCII seuls les caracteres apres chr(32)=' ' et avant chr(127)=='\x80' sont imprimables. Donc le test
    if caractere < ' ' or caractere>='\x80'
    est équivalent (et plus rapide).

    Maintenant, je me demande pourquoi tu veux filtrer les caractères imprimables dans une image, mais c'est un autre débat...

  4. #4
    Membre chevronné
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    en fait, je cherche à faire un script qui détecte les tatouages dans une image .TIF .
    Le problème c'est que j'ai besoin uniquement des caractères codant la couleur des pixels. Les autres caractères ne me servent pas.
    De plus entre 3 caractères je peux trés bien avoir simplement un 'v' comme un
    'created by gimp'.
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

  5. #5
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    la librairie PIL permet d'extraire facilement les valeurs des pixels.

    Hachoir permet d'extraire les metadonnées des fichiers.

    Pas besoin de reinventer la roue

  6. #6
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 55
    Par défaut
    Sinon, pour la beauté du geste, pourquoi ne pas ouvrir le fichier en mode binaire, et exclure les caractères indésirables plus facilement via des appels à read(x) ou x est le nombre de bytes de la représentation de tes structures de données?

    JC

  7. #7
    Membre chevronné
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Merci beacoup je vais essayer sa chez moi
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

  8. #8
    Membre chevronné
    Avatar de vincent.mbg
    Homme Profil pro
    Développeur Python
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Python

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Par défaut
    Merci à tous
    j'ai résolu mon probleme grace au module PIL la methode getpixel(self,xy) renvoie un tuple avec la valeur des pixels.
    Mon guide pour apprendre Tkinter - N'oubliez pas de consulter les FAQ Python ou de visiter mon blog

Discussions similaires

  1. Comment différencier les événements sur wxButton ?
    Par Eldered dans le forum wxWidgets
    Réponses: 7
    Dernier message: 24/04/2008, 17h54
  2. [MySQL] Differencier les champs avec et sans accent.
    Par Rakken dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/12/2006, 18h18
  3. Réponses: 17
    Dernier message: 07/12/2005, 15h19
  4. Differencier les input
    Par topolino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 07/05/2005, 20h35
  5. differencier boutons
    Par vodasan dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/10/2004, 15h14

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