Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1318 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  caractères ^M lors de copies de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

caractères ^M lors de copies de fichiers

n°2010599
liouan
Posté le 21-07-2010 à 11:33:41  profilanswer
 

Bonjour,
 
Je copie un fichier ligne par ligne, dans le but d'effectuer ensuite des modifications à la volée sur certaines lignes:
 

Code :
  1. file=open('input','r')
  2. output=open('output.txt','w')
  3. for line in file.read().split('\n'):
  4.     output.write(line+'\n')


 
Ce code est minimaliste et facile à comprendre...
Et pourtant, lorsque j'ouvre le fichier output avec vim, je vois des caractères '^M' apparaître à la fin de chaque ligne (alors que je ne les vois pas apparaître sur le fichier source, toujours en l'ouvrant avec vim)
D'ou vient le problème?D'un encodage surement? Y- a t-il une option à passer quelque part pour éviter ça?
 
Merci d'avance

mood
Publicité
Posté le 21-07-2010 à 11:33:41  profilanswer
 

n°2010640
liouan
Posté le 21-07-2010 à 13:48:24  profilanswer
 

J'ai ouvert mon fichier de référence avec Notepad++ et j'ai fait View -> Show Symbol -> Show all characters
J'ai pu constater qu'à la fin de chaque ligne, j'avais le caractère '\n' (normal) mais aussi le caractère '\r'.
C'est ce caractère qui est interprété bizarrement par python.
Au lieu de juste recopier le caractère '\r' tel qu'il est, il le remplace par ^M.
 
Lorsque j'introduis un passage à la ligne sous Notepad++, il insere automatiquement '\r\n' au lieu de juste '\n' alors que l'éditeur de texte par défaut sous eclipse ne le fait pas...
 
Après avoir retiré tous les '\r' de mon fichier de référence, je n'ai plus les caractères ^M dans le fichier destination.
 
J'ai donc 2 questions :
-quelqu'un sait-il comment ignorer les caractères '\r' lors de la recopie de la chaine dans un fichier ? ligne.replace('\r','') ?
-Est ce qu'il existe une option sous notepad ++ pour ne pas insérer de '\r' lorsque l'on passe à la ligne?

n°2010643
art_dupond
je suis neuneu... oui oui !!
Posté le 21-07-2010 à 13:58:00  profilanswer
 

tu peux convertir le fichier en "unix" ou "windows" dans notepad++ (dans le menu: "format" ).

 

Tu dois être dans le "mauvais" mode.


Message édité par art_dupond le 22-07-2010 à 08:02:14

---------------
oui oui

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  caractères ^M lors de copies de fichiers

 

Sujets relatifs
[Résolu][Batch] Comparaison chaines de caractèrescomparaison caractères
boucle pour ouvrir plusieurs fichiers en CAffichage de caractères polonais depuis un xml
probleme caracteres UNIX-WINDOWS en php[DELPHI] Verifier les caractères d'un string !
Lister les fichiers d'un répertoire : problème de portabilité?Besoin d'information sur les fichiers partagés sur Excel
Copies de cellules (multiple sélection)Caractères spéciaux
Plus de sujets relatifs à : caractères ^M lors de copies de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR