Печать штрихов по всей ширине экрана

Я хочу напечатать тире "-" до конца экрана пользователя.

По сути, моя программа будет печатать строку текста, затем строку черточек под ней и еще одну строку текста. Это будет сделано для того, чтобы пользователь мог легко различить первую и вторую строки.

Что-то вроде этого:

First line of text
--------------------------------------------------------------------------------------
Second line of text

Есть ли способ сделать это, используя стандартные библиотеки Python 2.6. Я не могу использовать какие-либо дополнительные библиотеки, такие как texttable или более новая версия Python.

1 ответ

2,6? Хорошо, это довольно старый. Это должно работать: (взято из Как получить ширину окна консоли Linux в Python)

def getTerminalSize():
    import os
    env = os.environ
    def ioctl_GWINSZ(fd):
        try:
            import fcntl, termios, struct, os
            cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ,
        '1234'))
        except:
            return
        return cr
    cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
    if not cr:
        try:
            fd = os.open(os.ctermid(), os.O_RDONLY)
            cr = ioctl_GWINSZ(fd)
            os.close(fd)
        except:
            pass
    if not cr:
        cr = (env.get('LINES', 25), env.get('COLUMNS', 80))

        ### Use get(key[, default]) instead of a try/catch
        #try:
        #    cr = (env['LINES'], env['COLUMNS'])
        #except:
        #    cr = (25, 80)
    return int(cr[1]), int(cr[0])

(width, height) = getTerminalSize()

print "-" * width
Другие вопросы по тегам