[Tutor] Clearing the Console Screen
Michael P. Reilly
arcege at gmail.com
Thu Jun 16 18:38:29 CEST 2005
On 6/16/05, Don Parris <webdev at matheteuo.org> wrote:
>
>
> Thanks! I thought there had to be a way to call the OS' clear screen
> command, but was going about it the wrong way. I was trying to use
> sys.clear instead of os.system. Would it be difficult to test the OS,
> store the result in a variable, and call the comand based on the variable
> result? Or would it be simpler to have users edit the script for their OS?
>
> Mind you, there may be other areas where I need an OS-specific command.
> I'm
> beginning to get an idea of the challenges of portability though. ;)
>
> Don
>
You might want to use the tput command. It returns control sequences for the
terminal that are used by all programs, e.g. emacs, vi(m). Your could
capture the output with the commands module and send it to the terminal with
stdout.write (instead of print).
import commands
clear_str = None
def clearscreen():
global clear_str
from sys import stdout
if not clear_str:
clear_str = commands.getoutput('tput clear')
stdout.write(clear_str)
clearscreen()
If you wanted, you could encapsulate this into a module or a class. This
would work on just about any UNIX/Linux/BSD system, and might work on Mac
OS/X (I don't know if they use terminfo).
You can use the other tput subcommands in your program if you wished as
well. (Hide the cursor, go to column X row Y, etc.)
-Arcege
--
There's so many different worlds,
So many different suns.
And we have just one world,
But we live in different ones.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tutor/attachments/20050616/0a9b4d2e/attachment.htm
More information about the Tutor
mailing list