Python + cx_Oracle красивый вывод в консоль?

Как сделать так, чтобы имена колонок не обновлялись с новым выводом и оставались всегда сверху, а строки данных пере затирали друг друга без мерцания.
Скрипт будет запускаться в консоли windows.

--------------------------------------------------------------------------------------------------------------
colum1 colum2 colum3 colum4 colum5
--------------------------------------------------------------------------------------------------------------
строка 1
строка 2
строка 3
строка ...

import cx_Oracle
import getpass
import os

usrid = getpass._raw_input("Login: " )
pswd = getpass.getpass()

host = "host"
port = "1521"
sid = "orcl"
dsn = cx_Oracle.makedsn(host, port, sid)


con = cx_Oracle.connect(usrid, pswd, dsn)
my_cursor = con.cursor()
while True:

    os.system('cls')
    try:
        my_cursor.execute("""select colum1, colum2, colum3, colum4, colum5, from table""")


    except cx_Oracle.DatabaseError, info:
        print "SQL Error:", info
        exit(0)

    print ("-") * 110

    title_mask = ('%-22s', '%-10s', '%-10s', '%-40s', '%-15s', '%-8s')
    i = 0
    for column_description in my_cursor.description:
        print title_mask[i] % column_description[0],
        i = 1 + i
    print ''
    print ("-") * 110

    row_mask = '%-22s %-10s %-10s %-40s %-10s %-15s'
    result = my_cursor.fetchall()
    for column in result:
        print(row_mask % (column[0], column[1], column[2], column[3], column[4], column[5]))
  • Вопрос задан
  • 802 просмотра
Пригласить эксперта
Ответы на вопрос 1
А мерцание это важное требование? Вот так "в лоб" практически не мерцает:
while(True):
	print(text)
	sleep(1)
	os.system('cls')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы