Open In App

How to print to stderr and stdout in Python?

Improve
Improve
Like Article
Like
Save
Share
Report

In Python, whenever we use print() the text is written to Python’s sys.stdout, whenever input() is used, it comes from sys.stdin, and whenever exceptions occur it is written to sys.stderr

We can redirect the output of our code to a file other than stdout. But you may be wondering why one should do this? The reason can be to keep a log of your code’s output or to make your code shut up i.e. not sending any output to the stdout. Let’s see how to do it with the below examples.

 What is Python stderr?

This file handle receives error information from the user program. The Standard error returns errors stderr. we will see different examples of using stderr.

Method 1: Using Python stderr

It is comparable to stdout in that it likewise prints straight to the console, but the key distinction is that it prints only Exceptions and Error messages which is why it is called Standard Error in Python.

Python3




import sys
 
def print_to_stderr(*a):
 
    # Here a is the array holding the objects
    # passed as the argument of the function
    print(*a, file=sys.stderr)
 
 
print_to_stderr("Hello World")


Output:

 

Method 2:  Using Python sys.stderr.write() function

When used in interactive mode, sys.stderr.write() accomplishes the same task as the object it stands for, with the exception that it also prints the text’s letter count.

Python3




import sys
 
print("Example 1")
print("Example 2", file=sys.stderr)
sys.stderr.write("Example 3")


Output:

 

Method 3: Using Python logging.warning  function

A built-in Python package tool called logging.warning enables publishing status messages to files or other output streams. The file may provide details about which portion of the code is run and any issues that have come up.

Python3




import logging
 
logging.basicConfig(format='%(message)s')
log = logging.getLogger(__name__)
log.warning('Error: Hello World')
print('GeeksforGeeks')


Output:

Error: Hello World
GeeksforGeeks

What is Python stdout?

This file handle receives regular information from the user program. The output is made available through the standard output stdout from sys module.

Method 1: Using Python  sys.stdout method

stdout in Python is similar to sys.stdin, but it directly displays anything written to it to the Console.

Python3




import sys
 
def print_to_stdout(*a):
 
    # Here a is the array holding the objects
    # passed as the argument of the function
    print(*a, file=sys.stdout)
 
print_to_stdout("Hello World")


Output:

 

Method 2: Using Python print() function

Python print() function prints the message to the screen or any other standard output device. In the print() function, it requires an empty parenthesis at the end that tells Python to execute the function rather than calling it by name. 

Python3




print( "Hello GeeksforGeeks" )


Output:

Hello GeeksforGeeks

Method 3: Using Python sys.stdout.write() function

The sys.stdout.write() serves the same purpose as the object stands for except it prints the number of letters within the text too when used in interactive mode

Python3




import sys
 
a = 11
 
print(a)
print(a, file=sys.stdout)
sys.stdout.write(a)


Output:

 



Last Updated : 16 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads