Comment imprimer pour stderr en Python

Syed Moiz Haider 10 octobre 2023
  1. Impression vers stderr en Python 2.x
  2. Utilisez le module logging pour imprimer vers stderr
Comment imprimer pour stderr en Python

Ce tutoriel explique comment écrire sur la sortie d’erreur standard, stderr, en Python. Il donne également quelques exemples de codes pour expliquer les différentes façons d’écrire dans stderr, car la syntaxe a changé au fil du temps.

Imprimer vers stderr en Python 3.x

Pour Python3.x, la fonction print a un argument de mot-clé file qui spécifie la destination de l’impression. Il s’agit de sys.stdout par défaut mais peut être sys.stderr ou même un chemin de fichier.

Elle imprime le message vers stderr si file=sys.stderr. Un exemple de code est donné ci-dessous :

import sys

print("Error", file=sys.stderr)

Production :

Error

Impression vers stderr en Python 2.x

Pour Python 2.x, l’instruction print peut imprimer le message vers une destination de type file-like comme stdout, stderr, ou un chemin de fichier. Cet objet file-like est spécifié après l’instruction >>. Voir l’exemple ci-dessous.

import sys

print >>sys.stderr, "Error Detected!"

Production :

Error Detected!

Utilisez le fichier sys.stderr pour imprimer vers stderr

Le module sys de Python fournit des informations précieuses et des fonctionnalités clés. La méthode sys.stderr.write() peut être utilisée. La méthode sys.stderr.write() imprime le message en tant que paramètre donné à la stderr. Voir l’exemple ci-dessous.

import sys

sys.stderr.write("Error!")

Production :

Error!

Utilisez le module logging pour imprimer vers stderr

Le module logging en Python est spécifiquement créé pour enregistrer les messages. Le module de journalisation peut être utilisé pour imprimer sur stderr après avoir défini la configuration de base. Le module logging.basicConfig() prend le format message en entrée, et logging.getLogger() retourne un objet de la logging. Le log.warning() prend le texte warning et l’imprime dans stderr.

Un exemple de base de cette approche est présenté ci-dessous :

import logging

logging.basicConfig(format="%(messages)s")
log = logging.getLogger()

log.warning("Error Found!")

Production :

Error Found!
Syed Moiz Haider avatar Syed Moiz Haider avatar

Syed Moiz is an experienced and versatile technical content creator. He is a computer scientist by profession. Having a sound grip on technical areas of programming languages, he is actively contributing to solving programming problems and training fledglings.

LinkedIn

Article connexe - Python Print