"Кстати ...... Как обновлять его каждый раз, чтобы печатать ми в одном месте, просто измените номер."
Это действительно сложная тема. То, что zack предлагает (вывод управляющих кодов консоли), является одним из способов достижения этого.
Вы можете использовать (n) проклятий, но это работает в основном на * nixes.
В Windows (и здесь идет интересная часть), которая редко упоминается (я не могу понять почему), вы можете использовать привязки Python к WinAPI (http://sourceforge.net/projects/pywin32/ также с ActivePython по умолчанию) - это не так сложно и работает хорошо. Вот небольшой пример:
import win32console, time
output_handle = win32console.GetStdHandle( win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]
for i in "\\|/-\\|/-":
output_handle.WriteConsoleOutputCharacter( i, pos )
time.sleep( 1 )
Или, если вы хотите использовать print
(оператор или функция, без разницы):
import win32console, time
output_handle = win32console.GetStdHandle( win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]
for i in "\\|/-\\|/-":
print i
output_handle.SetConsoleCursorPosition( pos )
time.sleep( 1 )
win32console
модуль позволяет вам делать намного больше интересных вещей с консолью Windows ... Я не большой поклонник WinAPI, но недавно я понял, что, по крайней мере, половина моей антипатии к этому была вызвана написанием кода WinAPI в С - пифонические привязки намного проще в использовании.
Все остальные ответы, конечно, великолепны и питонны, но ... Что если я захочу напечатать в предыдущую строку? Или написать многострочный текст, чем очистить его и снова написать те же строки? Мое решение делает это возможным.