Основная проблема:
У меня в cmd.exe отображается индикатор выполнения, который, кажется, имеет курсор в конце строки индикатора выполнения.
Arrival selected for <Cotton>. Hit <Enter> to start:
Iterations: 9%|##7 | 24/254 [02:04<16:43, 4.36s/it]_
Когда из сценария печатается сообщение, оно начинается с конца строки индикатора выполнения с одним символом на нем, а остальные под ним, например:
Arrival selected for <Cotton>. Hit <Enter> to start:
Iterations: 9%|##7 | 24/254 [02:04<16:43, 4.36s/it]C
an't update config.json
Что я пробовал до сих пор:
Я попытался использовать ascii = "123456789 #" и использовать ncols = 40, думая, что это может быть что-то связанное с шириной, но безрезультатно. Форма cmd.exe размером windows имеет ширину - 80 и высоту - 27, и мой код выглядит так:
pbar = tqdm(total = 10, desc = "Iterations", mininterval = 1)
for i in range(1, 10):
somefunction(x, y)
pbar.update()
pbar.close()
Использование bar.set_postfix_str для добавления символа новой строки, также попытался добавить дополнительный пробел в строке с pbar.write (""), но он вводит только дополнительную строку между напечатанным сообщением, например:
Arrival selected for <Cotton>. Hit <Enter> to start:
Iterations: 9%|##7 | 24/254 [02:04<16:43, 4.36s/it]C
an't update config.json
Сообщения поступают из somefunction (), которые используют input () для ввода пользовательского ввода иногда поэтому я не могу использовать pbar.write (). Я вижу, что есть другие, показывающие аналогичный результат, поэтому я думаю, что он работает так, как задумано: Python индикатор выполнения с использованием tqdm PS: Но моя проблема не в нескольких индикаторах выполнения
Одно решение было для префикса всех операторов печати с "\ n", что я хочу, но я хотел знать, есть ли возможность исправить это, установив некоторые параметры для самого tqdm. Если я смогу просто заставить этот курсор заканчиваться на новой строке, я думаю, это исправит.
Обновление 20-июн-2020:
Удалось исправить часть этого, выполнив функцию:
def prompy_user(msg_string:str):
logging.info("User input: " + msg_string)
winsound.PlaySound(os.path.join('Media\\Calligraphy\\', \
'Windows Notify.wav'), winsound.SND_FILENAME)
input(" " + msg_string)
Но по-прежнему существует проблема с некоторыми сообщениями от chrome или chromedriver, которые начинаются с конца строки tqdm:
State <DN#7>: 63%|████████████████? | 321/511 [31:44<14:03, 4.44s/it][
11012:12676:0618/171507.109:ERROR:ppapi_thread.cc(310)] Failed to load Pepper mo
dule from internal-not-yet-present (error: 126)
State <MH#19>: 65%|████████████████? | 333/511 [32:53<22:28, 7.58s/it]
Как остановить появление этих сообщений? Это мой установочный код:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--purge-memory-button')
chrome_options.add_argument('--disable-logging')
chrome_options.add_argument('--aggressive-cache-discard')
chrome_options.add_argument('--disable-cache')
chrome_options.add_argument('--disable-local-storage')
chrome_options.add_argument('--disable-application-cache')