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

  1. #1
    Membre régulier Avatar de dedalios
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : février 2008
    Messages : 380
    Points : 123
    Points
    123
    Par défaut probleme de lecture d'un fichier utf-8 unix avec un programme tournant sous windows
    bonjour ,

    j'ai des fichiers en UTF-8 sous unix un programme de lecture du fichier qui fonctionne sous windows.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # -*- coding: utf_8 -*- 
    import string
    import sys
    import datetime
    import os
     
     
    # Base Application
    if __name__ == '__main__':
         with open(nom_fichier_path_in, 'r') as fichier: 
                for ligne in fichier:
                     id =  lnsrc[0:3].strip()
                     adr= ligne[91:123].strip()
    j'ai un problème dans on fichier de la position 92 à 123 j'ai ceci "APPT N° 23 "
    si je réalise un print(adr) j'obtiens "APPT N°3".

    l'utilisation de la commande encode ne change rien. si je convertie le fichier unix au format Windows j'ai un effet de décalage de 2 caractères.L'application est exécuter sous windows pas sous linux et ne peut pas être lancer sous linux.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    2 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : octobre 2011
    Messages : 2 047
    Points : 2 640
    Points
    2 640
    Par défaut
    Salut,

    Essaye ça : #10
    Citation Envoyé par wiztricks Voir le message
    Dans la police de caractères cp1252 on ne sait pas représenter des caractères hors de 0..255.
    Or \U0001f609 çà fait 128521 en décimal...
    Pour coder çà il faut de l'utf-8/utf-16/... et le préciser à l'open des fichiers (en écriture) via open(...., encoding='utf-8').
    Cependant, ce n'est peut être pas ce qu'il y a de mieux à faire : çà dépend de ce qu'on fait avec les fichiers après.

  3. #3
    Membre régulier Avatar de dedalios
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : février 2008
    Messages : 380
    Points : 123
    Points
    123
    Par défaut
    merci la solution de qualification du type de fichier fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            with open(nom_fichier_path_in, 'r' , encoding='utf-8') as fichier:

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

Discussions similaires

  1. Lecture/écriture de fichiers UTF 16 LE
    Par Pill_S dans le forum Delphi
    Réponses: 8
    Dernier message: 19/12/2006, 19h08
  2. Probleme de lecture d'un fichier
    Par Jim_Nastiq dans le forum Langage
    Réponses: 10
    Dernier message: 27/06/2006, 10h53
  3. Réponses: 5
    Dernier message: 26/06/2006, 10h35
  4. Gros probleme de lecture d'un fichier texte
    Par Draekonyss dans le forum C
    Réponses: 12
    Dernier message: 25/04/2006, 10h25
  5. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 13h04

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