Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec os.write()

Python 3.1.2

Sujet résolu
    26 juillet 2010 à 22:01:38

    Bonjour, j'essai d'écrire du texte à l'écran d'une façon différente que via print().
    Mon code entier se résume à ceci :
    import os
    import sys
    
    os.write(sys.stdout, "test")
    

    J'obtiens le résultat suivant :
    Traceback (most recent call last):
      File "C:\Python31\Projects\test.py", line 4, in <module>
        os.write(sys.stdout, "test")
    TypeError: an integer is required

    Que se passe t'il ? Pourquoi sys.stdout ne serait t'il pas défini ? La doc dit bien qu'il est défini au lancement de l'application, et il s'agit bien d'une application console (fichier 'test.py'). Bref, je comprend que dalle ! :euh:

    J'utilise Windows XP et Python 3.1.2.
    A+
    • Partager sur Facebook
    • Partager sur Twitter
      26 juillet 2010 à 22:17:20

      os.write attend un descripteur de fichier (pour le système en question) sous la forme d'entier, c'est une fonction bas niveau.
      Pour en obtenir un il faut ouvrir un fichier avec os.open.

      Utilise plutôt sys.stdout.write("test), et ouvre tes fichiers avec la builtin open pour obtenir des objets fichiers.
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2010 à 4:49:18

        D'accord, merci de ton aide ! ^^
        • Partager sur Facebook
        • Partager sur Twitter

        Problème avec os.write()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown