シーケンス \b のバックスペースで、プリントした文字を消すことができる。
print('requesting...', end='', flush=True)
heavy_method(...)...
print('\b' * 13, end='', flush=True)
コンテキストマネージャーで書くと
import contextlib
@contextlib.contextmanager
def print_and_erase(text):
print(text, end='', flush=True)
yield
print('\b' * len(text), end='', flush=True)
with print_and_erase('requesting...'):
heavy_method(...)