В принципе, я хочу сделать противоположное тому, что сделал этот парень ... хе-хе.Печать в той же строке, а не новая строка в python
Python Script: Print new line each time to shell rather than update existing line
У меня есть программа, которая говорит мне, как далеко это.
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
Так что, если len (some_list) было 50, я бы получил последнюю строку, напечатанную 50 раз. Я хочу напечатать одну строку и продолжить обновление этой строки. Я знаю, что знаю, что это, вероятно, самый лёгкий вопрос, который вы будете читать весь день. Я просто не могу понять, какие четыре слова мне нужно отправить в Google, чтобы получить ответ.
Обновление! Я попробовал предложение mvds, которое SEEMED было правильным. Новый код
print percent_complete," \r",
Процент выполнения это просто строка (я абстрагирования в первый раз, теперь я пытается быть буквальным). Теперь результат состоит в том, что он запускает программу, не печатает «НИЧЕГО» до завершения программы, а затем печатает «100% завершен» на одной и только одной строке.
Без возврата каретки (но с запятой, половиной предложения mvds) он ничего не печатает до конца. А затем отпечатки:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
И так далее. Итак, теперь новая проблема заключается в том, что с запятой она не печатается, пока программа не будет закончена.
С возвратом каретки и без запятой он ведет себя точно так же, как и ни с одним из них.
Возможно, вы также захотите проверить 'sys.stdout.isatty()', чтобы вы не выплевывали эти вещи, когда не выполнялись в терминале. – mvds
Я запускаю это из терминала ... хорошая мысль. Я уверен, что в какой-то момент мне это понадобится. – chriscauley
фон - это, кстати, то, что на нескольких языках \ n (который мы теперь опускаем) служит неявным сигналом для сброса в stdout. В противном случае многие люди будут смущены. – mvds