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 :

Comment faire une copie UTF8 d'un fichier codé en ASCII ou autre ?


Sujet :

Python

  1. #1
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut Comment faire une copie UTF8 d'un fichier codé en ASCII ou autre ?
    Bonjour,
    je suis en train de quitter Windows pour Mac et me voilà face à un gros souci. J'ai tapé plein de fichiers TXT sans faire gaffe à l'encodage lors de leur création. Du coup, ils sont tous encodés en ASCII et sur Mac cela ne passe plus (par exemple, ¨ et é sont mal affichés).
    Il faudrait que je puisse changer cet encodage via Python afin de faire un script qui me modifie l'encodage de tous mes fichiers.

    Mon souci. Comment faire une copie UTF8 d'un fichier codé en ASCII ou autre ?

    Pour la gestion du répertoire et des fichiers, cela ne me pose pas de problème.

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Certains éditeurs ont cette fonction intégrée, mais il est vrai que si tu dois faire 300 fichiers... dur dur

    Je ne suis pas sur de la validité de ce qui va suivre, mais je présume que ça devrait fonctionner.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fin = open("monFichierAscii.py")
    fout = open("monFichierUnicode.py", "w")
    fout.write(unicode(fin.read(), "utf-8"))
    Edit: jette aussi un oeuil du côté de codecs.open

  3. #3
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Citation Envoyé par Antoine_935 Voir le message
    Certains éditeurs ont cette fonction intégrée, mais il est vrai que si tu dois faire 300 fichiers... dur dur
    Oui je sais, j'utilise notepad++ mais faire tout à la main...

    Sinon pour ta proposition, cela ne fonctionne pas avec le fichier suivant :
    J'ai droit au message d'erreur suivant :
    Traceback (most recent call last):
    File "C:\Documents and Settings\Christophe\Mes documents\2,pyBaNaMa\pyUTF8\conversionAsciiToUtf8.py", line 17, in <module>
    fout.write(unicode(fin.read()))
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xa8 in position 0: ordinal not in range(128)

  4. #4
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Ha, tu as écrit ta réponse au moment où j'éditais mon message :p
    Comme je dis donc, essaye de passer par codecs.open

  5. #5
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Faute de temps je vais laisser la question en suspens car il existe un logiciel qui fait cela : Kaboom.

    Apparemment le codage des fichiers par défaut de Notepad++ est "windows-1252", il faudrait que je regarde à l'occasion comment changer l'encodage.

Discussions similaires

  1. [FAQ] Javascript : Comment faire une copie d'un tableau ? (Array javascript)
    Par arnogues dans le forum Contributions JavaScript / AJAX
    Réponses: 16
    Dernier message: 15/11/2013, 19h19
  2. Comment faire une copie d'écran d'une page web ?
    Par benj63 dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/06/2013, 16h11
  3. comment faire une copie d'un serveur sur un autre
    Par bomonde dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/12/2010, 15h41
  4. Réponses: 11
    Dernier message: 23/06/2007, 00h32
  5. Réponses: 9
    Dernier message: 03/09/2006, 23h25

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