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 :

encodage d'arguments pour la console


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut encodage d'arguments pour la console
    Bonjour à tous

    Voilà, j'ai un petit problème technique au niveau des encodages.
    J'ai un exécutable, qu'on va appeler Test.exe, qui prend en argument une chaine de caractères correspondant à un fichier, par exemple 'C:\Log\log.txt'.
    Ce programme procède à différents traitements, et renvoie les données sur la sortie standard.

    J'appelle le tout via un script Python et le module subprocess.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cmd = r'Test.exe "C:\Log\log.txt"'
    subprocess.Popen(cmd)
    Mon problème est le suivant. J'ai des noms de fichier en japonais sur mon système de fichier. Aussi, mon argument de fonction sera un fichier japonais.
    Je voudrais pouvoir lancer quelque chose du genre ci-dessus, mais en forçant le terminal dans lequel se lance mon exécutable à tourner avec un encodage compatible japonais (utf8 ou cp932 par exemple) au lieu de l'encodage par défaut (cp1252).
    Malheureusement je ne sais pas comment faire pour dire à Python de modifier les encodages stdin et stdout proprement. Si quelqu'un avait une idée ça m'aiderait beaucoup !!!

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Bibi218 Voir le message
    Bonjour à tous

    Voilà, j'ai un petit problème technique au niveau des encodages.
    J'ai un exécutable, qu'on va appeler Test.exe, qui prend en argument une chaine de caractères correspondant à un fichier, par exemple 'C:\Log\log.txt'.
    Ce programme procède à différents traitements, et renvoie les données sur la sortie standard.

    J'appelle le tout via un script Python et le module subprocess.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cmd = r'Test.exe "C:\Log\log.txt"'
    subprocess.Popen(cmd)
    Mon problème est le suivant. J'ai des noms de fichier en japonais sur mon système de fichier. Aussi, mon argument de fonction sera un fichier japonais.
    Je voudrais pouvoir lancer quelque chose du genre ci-dessus, mais en forçant le terminal dans lequel se lance mon exécutable à tourner avec un encodage compatible japonais (utf8 ou cp932 par exemple) au lieu de l'encodage par défaut (cp1252).
    Malheureusement je ne sais pas comment faire pour dire à Python de modifier les encodages stdin et stdout proprement. Si quelqu'un avait une idée ça m'aiderait beaucoup !!!
    On peut en principe changer l'encodage de la console avec la fonction SetOutputCP() du module win32console (installer l'extension Python for Windows). En revanche, cela ne règle pas le problème de la fonte qui, par défaut, ne permet pas d'afficher les caractères d'un codepage comme cp932.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. Arguments pour et contre Access ?
    Par bottura dans le forum Sondages et Débats
    Réponses: 240
    Dernier message: 23/03/2018, 23h25
  2. Passer des arguments pour appli windows (execution console)
    Par death_style dans le forum Visual C++
    Réponses: 1
    Dernier message: 15/02/2010, 13h19
  3. [String] Encodage de caractères pour une sortie HTML
    Par elitost dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 10/11/2004, 08h02
  4. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  5. X11 obligatoire pour install console ?
    Par ovh dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/11/2003, 16h50

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