How to clear screen in python?

Most of the time, while working with python interactive shell/terminal (not a console), we end up with a messy output and want to clear the screen for some reason.
In an interactive shell/terminal, we can simply use

ctrl+l

But, what if we want to clear the screen while running a python script.
Unfortunately, there’s no built-in keyword or function/method to clear the screen. So, we do it on our own.

We can use ANSI escape sequence but these are not portable and might not produce desired output.

print(chr(27)+'[2j')
print('\033c')
print('\x1bc')

So, here’s what we’re going to do in our script:

  1. From os import system.
  2. Define a function.
  3. Make a system call with ‘clear’ in Linux and ‘cls’ in Windows as an argument.
  4. Store the returned value in an underscore or whatever variable you want (an underscore is used because python shell always stores its last output in an underscore).
  5. Call the function we defined.
filter_none

edit
close

play_arrow

link
brightness_4
code

# import only system from os
from os import system, name
  
# import sleep to show output for some time period
from time import sleep
  
# define our clear function
def clear():
  
    # for windows
    if name == 'nt':
        _ = system('cls')
  
    # for mac and linux(here, os.name is 'posix')
    else:
        _ = system('clear')
  
# print out some text
print('hello geeks\n'*10)
  
# sleep for 2 seconds after printing output
sleep(2)
  
# now call function we defined above
clear()

chevron_right


NOTE: You can also only “import os” instead of “from os import system” but with that, you have to change system(‘clear’) to os.system(‘clear’).

Another way to accomplish this is using subprocess module.

filter_none

edit
close

play_arrow

link
brightness_4
code

# import call method from subprocess module
from subprocess import call
  
# import sleep to show output for some time period
from time import sleep
  
# define clear function
def clear():
    # check and make call for specific operating system
    _ = call('clear' if os.name =='posix' else 'cls')
  
print('hello geeks\n'*10)
  
# sleep for 2 seconds after printing output
sleep(2)
  
# now call function we defined above
clear()

chevron_right





My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

5


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.