code: def get_terminal_width():
      
      # Let's first try using the official API
      # (Python 3.3+)
      if not six.PY2:
          import shutil
          sizex = shutil.get_terminal_size(fallback=(0, 0))[0]
          if sizex != 0:
              return sizex
      # Backups / Python 2.7
      if WINDOWS:
          from ctypes import windll, create_string_buffer
          # http://code.activestate.com/recipes/440694-determine-size-of-console-window-on-windows/
          h = windll.kernel32.GetStdHandle(-12)
          csbi = create_string_buffer(22)
          res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
          if res:
              (bufx, bufy, curx, cury, wattr,
               left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)  # noqa: E501
              sizex = right - left + 1
              # sizey = bottom - top + 1
              return sizex
          return None
      else:
          # We have various methods
          sizex = None
          # COLUMNS is set on some terminals
          try:
              sizex = int(os.environ['COLUMNS'])
          except Exception:
              pass
          if sizex:
              return sizex
          # We can query TIOCGWINSZ
          try:
              import fcntl
              import termios
              s = struct.pack('HHHH', 0, 0, 0, 0)
              x = fcntl.ioctl(1, termios.TIOCGWINSZ, s)
              sizex = struct.unpack('HHHH', x)[1]
          except IOError:
              pass
          return sizex
docs: Get terminal width (number of characters) if in a window.
  
      Notice: this will try several methods in order to
      support as many terminals and OS as possible.