Функция печати без новой строки под не работает должным образом в Python

Я делаю индикатор выполнения для моего сценария загрузки, и поэтому я хочу напечатать строку из нескольких '#', но я могу ' t заставить его работать. Когда я говорю Python не добавлять новую строку, он удаляет ее, но в функциях не работает должным образом. Используя "print ('#', end = '')" в Python 3 или "print '#'," в Python 2 он удаляется, но при выполнении под функциями он ничего не выводит, пока не завершится вся функция, он не должен ждать, как обычный print.

import time

i = 0

def status():
    print('#', end='')

while i < 60:
    status()
    time.sleep(1)
    i += 1

Он должен печатать '#' каждую секунду, но не . Он печатает их все через 60 секунд. Использование только print ('#'), как и ожидалось, распечатывает его каждую секунду. Мне действительно нужно исправить это. Пожалуйста, помогите!

Решение: "sys.stdout.flush ()" после каждого вывода:)

8
задан ggustafsson 24 February 2011 в 07:03
поделиться