Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linux Terminal Display and Python

I am writing a Python script to print out displayable user interface. The problem is every Linux user would have their own unique terminal size. This will cause the hard-coded user interface to go out of format.

(If there is a lot of example below, the terminal looks Crazy!!!).

Example, in the script. I have print out:

print "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"

Format should goes well in my terminal: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

When the terminal is smaller, the print out format will run out. Format become: ++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++

So I am thinking:

  1. When the user run the script, can I auto change the Linux terminal size to my declare size
  2. Can I get the Width and Length of the user terminal size using Python, so the terminal display can be flexible
  3. I would like to hear any better solution around the world to solve the terminal display problem!

I would strongly prefer recommendation in Python

like image 796
Ezylryb Avatar asked Oct 03 '11 15:10

Ezylryb


2 Answers

I'd highly suggest using something like the Python Standard Library's curses module to do this.

Don't reinvent the wheel - using an existing library will both help you avoid corner cases and also save you time. Plus, the curses interface is a familiar one to *nix users, which will make them like you more.

like image 195
Amber Avatar answered Oct 20 '22 12:10

Amber


As Amber suggested, you should use a library like curses.

Still, you could get the width of the terminal using something like this:

import subprocess
int(subprocess.Popen(['tput', 'cols'], stdout=subprocess.PIPE).stdout.read())
like image 20
Attila O. Avatar answered Oct 20 '22 12:10

Attila O.