Печатать на той же строке, а не на новой строке в python

Вы можете сделать это с помощью CSS. Просто дайте всем элементам li {} переход mizi, а затем переопределите его для элементов li:first-child {} с переходом pizi.

63
задан Community 23 May 2017 в 12:17
поделиться

6 ответов

Это называется возвратом каретки, или \ r

Используйте

print i/len(some_list)*100," percent complete         \r",

Запятая не позволяет печати добавлять новую строку. (а пробелы сохранят строку чистой от предыдущего вывода)

Также не забудьте завершить print "" , чтобы получить хотя бы завершающую новую строку!

76
ответ дан 24 November 2019 в 16:12
поделиться

Поздно к игре - но так как ни один из ответов не работал на меня (я не судил их всех), и я натолкнулся на этот ответ несколько раз в моем поиске... В python 3 это решение довольно изящно, и я верю, делает точно, что ищет автор, это обновляет отдельного оператора на той же строке. Отметьте, Вам, вероятно, придется сделать что-то специальное, если уменьшения строки вместо растут (как, возможно, делают строку фиксированной длиной с заполненными пробелами в конце)

if __name__ == '__main__':
    for i in range(100):
        print("", end=f"\rPercentComplete: {i} %")
        time.sleep(0.2)
0
ответ дан 24 November 2019 в 16:12
поделиться

При использовании Python 3 тогда, это для Вас, и он действительно работает.

print(value , sep='',end ='', file = sys.stdout , flush = False)
0
ответ дан 24 November 2019 в 16:12
поделиться

При использовании Spyder строки просто печатают непрерывно со всеми предыдущими решениями. Способ избежать этого использует:

for i in range(1000):
    print('\r' + str(round(i/len(df)*100,1)) + '% complete', end='')
    sys.stdout.flush()
0
ответ дан 24 November 2019 в 16:12
поделиться

Попробуйте это так:

for i in some_list:
    #do a bunch of stuff.
    print i/len(some_list)*100," percent complete",

(с запятой в конце.)

1
ответ дан 24 November 2019 в 16:12
поделиться

У меня это работает, однажды я его взломал, чтобы посмотреть, возможно ли это, но на самом деле никогда не использовался в моей программе (графический интерфейс намного лучше):

import time
f = '%4i %%'
len_to_clear = len(f)+1
clear = '\x08'* len_to_clear
print 'Progress in percent:'+' '*(len_to_clear),
for i in range(123):
    print clear+f % (i*100//123),
    time.sleep(0.4)
raw_input('\nDone')
3
ответ дан 24 November 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: