Вы можете сделать это с помощью CSS. Просто дайте всем элементам li {}
переход mizi, а затем переопределите его для элементов li:first-child {}
с переходом pizi.
Это называется возвратом каретки, или \ r
Используйте
print i/len(some_list)*100," percent complete \r",
Запятая не позволяет печати добавлять новую строку. (а пробелы сохранят строку чистой от предыдущего вывода)
Также не забудьте завершить print ""
, чтобы получить хотя бы завершающую новую строку!
Поздно к игре - но так как ни один из ответов не работал на меня (я не судил их всех), и я натолкнулся на этот ответ несколько раз в моем поиске... В python 3 это решение довольно изящно, и я верю, делает точно, что ищет автор, это обновляет отдельного оператора на той же строке. Отметьте, Вам, вероятно, придется сделать что-то специальное, если уменьшения строки вместо растут (как, возможно, делают строку фиксированной длиной с заполненными пробелами в конце)
if __name__ == '__main__':
for i in range(100):
print("", end=f"\rPercentComplete: {i} %")
time.sleep(0.2)
При использовании Python 3 тогда, это для Вас, и он действительно работает.
print(value , sep='',end ='', file = sys.stdout , flush = False)
При использовании Spyder строки просто печатают непрерывно со всеми предыдущими решениями. Способ избежать этого использует:
for i in range(1000):
print('\r' + str(round(i/len(df)*100,1)) + '% complete', end='')
sys.stdout.flush()
Попробуйте это так:
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete",
(с запятой в конце.)
У меня это работает, однажды я его взломал, чтобы посмотреть, возможно ли это, но на самом деле никогда не использовался в моей программе (графический интерфейс намного лучше):
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')