grr

Python 3 Scripts

Python 3 Scripts

コンソール文字出力の上書き

Python3のコンソールへの文字の標準出力は、その行であれば上書きして書き換えることができる。 画面全体、複数行にわたる書き換えの場合には別のライブラリ等を利用した方法になる。

Carriage Return(CR)を使用してキャレットを行末から行頭(左端)に戻す。

index

サンプルコード

import sys, time
for num, i in enumerate(range(10)):
    sys.stdout.write("\r%d" % num)
    sys.stdout.flush()
    time.sleep(0.05)

#!/usr/bin/env python
#-*- coding:utf-8 -*-
print("END")
#B
import sys
import time

for i in range(10):
    sys.stdout.write("\r%d" % i)
    sys.stdout.flush()
    time.sleep(0.1)

print("END")

#
from time import sleep
for i in range(10):
    print('\r', i, end='')
    sleep(0.1)

print("END")
#
import math
import sys
import time

END = 170

MAX_LEN = 30

def get_progressbar_str(progress):
    BAR_LEN = int(MAX_LEN * progress)
    return ('[' + '=' * BAR_LEN +
            ('>' if BAR_LEN < MAX_LEN else '') +
            ' ' * (MAX_LEN - BAR_LEN) +
            '] %.1f%%' % (progress * 100.))

for i in range(END + 1):
    time.sleep(0.01)
    progress = 1.0 * i / END
    sys.stderr.write('\r\033[K' + get_progressbar_str(progress))
    sys.stderr.flush()
sys.stderr.write('\n')
sys.stderr.flush()

print("END")

#
for i in range(10):
    sys.stdout.write("*")
    sys.stdout.flush()
    time.sleep(0.1)
print()

print("END")
#
import sys
import time
for i in range(10):
    sys.stdout.write("\r{}".format(i))
    sys.stdout.flush()
    time.sleep(0.1)
print()


print("END")

#
import sys, time
for i in range(10):
    sys.stdout.write("\r%d" % i)
    sys.stdout.flush()
    time.sleep(0.1)


print("END")
#
def override_print(message, line_length = 100):
    if len(message) > line_length:
        message = message[:line_length - 3] + "..."
    sys.stdout.write((u"\r{0:<" + str(line_length) + "}").format(message))
sys.stdout.flush()

プロセスバー表現

import time
import sys

sys.stdout.write('['+' '*10+']')
# moved *11 on account of ]
sys.stdout.write('\b'*11)
sys.stdout.flush()
for i in range(10):
    time.sleep(1)
    sys.stdout.write('.')
    sys.stdout.flush()
sys.stdout.write('] Done!\n')



print("END")


import time
import sys

sys.stdout.write('['+' '*10+']')
sys.stdout.write('\b'*10)
sys.stdout.flush()
for i in range(10):
    time.sleep(1)
    sys.stdout.write('\b' + '=')
    if(i < 9):
        sys.stdout.write('>')
    sys.stdout.flush()
sys.stdout.write('] Done!\n')






print("END")


import time
import sys

sys.stdout.write('['+' '*10+']  0%')
sys.stdout.flush()
for i in range(10):
    time.sleep(1)
    sys.stdout.write('\b'*(15-i) + '=')
    if(i < 9):
        sys.stdout.write('>')
    sys.stdout.write(' '*(8-i) + '] ' + str(i+1) + '0%')
    sys.stdout.flush()
# overwrite the percentage sign and write Done instead
sys.stdout.write('\b\b\b\bDone!\n')


print("END")


import time
for x in range (0,5):
    b = "Loading" + "." * x
    print (b, end="\r")
    time.sleep(1)