Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

コンソールの同じ行にprint

コンソールで、表示を更新したいけど、行は増やしたくないときに使うもの。

消してもよい情報をprintするときは、printt.printt("hoge","piyo1",over_write=True) のように、"over_write=True” とする。

実行結果

('hoge', 'piyo0')
('hoge', 'piyo3')    
('hoge', 'piyo4')
('hoge', 'piyo7')    
('hoge', 'piyo9')   

コード

import time
class printt():
    # クラス変数
    last_over_write_status = False
    @classmethod
    def printt(cls, *args, over_write=False):

        if __class__.last_over_write_status is True:
            print("\r",end="")
        else:
            pass

        if over_write is False:
            if __class__.last_over_write_status is True:
                # 1行前の表示残りを上書きするため、後半に空白を追加
                print(args,"   ")
            else:
                print(args)
            __class__.last_over_write_status = False
        else:
            print(args,end="")
            __class__.last_over_write_status = True

if __name__ =="__main__":
    printt.printt("hoge","piyo0")
    time.sleep(1)
    printt.printt("hoge","piyo1",over_write=True)
    time.sleep(1)
    printt.printt("hoge","piyo2",over_write=True)
    time.sleep(1)
    printt.printt("hoge","piyo3")
    time.sleep(1)
    printt.printt("hoge","piyo4")
    time.sleep(1)
    printt.printt("hoge","piyo5",over_write=True)
    time.sleep(1) 
    printt.printt("hoge","piyo6",over_write=True)
    time.sleep(1)
    printt.printt("hoge","piyo7")
    time.sleep(1) 
    printt.printt("hoge","piyo8",over_write=True)
    time.sleep(1)
    printt.printt("hoge","piyo9")