В основному я хочу зробити протилежне тому, що зробив цей хлопець ... хе-хе.
Python Script: кожен раз друкуйте новий рядок для оболонки, а не оновлюйте існуючий рядок
У мене є програма, яка повідомляє мені, наскільки це далеко.
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, яка ВИДАЛАСЯ правильною. Новий код
print percent_complete," \r",
Відсоток завершених - це просто рядок (я абстрагувався вперше, коли намагався бути буквальним). Результатом цього є те, що вона запускає програму, не друкує НІЧОГО, поки програма не закінчиться, а потім друкує "100 відсотків завершено" на одному і тільки одному рядку.
Без повернення каретки (але з комою, половини пропозиції mvds) він нічого не друкує до кінця. А потім друкує:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
І так далі. Отож, нова проблема полягає в тому, що кома не друкується, поки програма не буде закінчена.
З поверненням каретки і відсутністю коми вона поводиться точно так само, як і з жодною.
sys.stdout.isatty()
щоб не виплюнути ці речі, коли не запущено в терміналі.