TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #21

@pythonotes

Python Заметки

Прегледи454Број на прегледи
Објавено18 јан.18.01.2020 г., 09:00
Содржина

Содржина на објавата

Кто-то в вашей компании любит "брейкпринты" ??? (это такой способ "дебажить" 🐞 код с помощью функции print()) Проблема такого подхода состоит в том, что для просмотра output нужно лично присутствовать у монитора. Более нигде эта информация не записывается и пропадает после закрытия приложения. Если присутствие невозможно, то приходится искать обходные пути. Кроме переписывания кода, записи консоли на видео и нарезки серии скриншотов есть и более хитрый способ. Например, глобально перенаправить вывод функции print() в файл в сети (или потом попросить прислать). В стандартной библиотеке уже есть подходящее решение: from contextlib import redirect_stdout with open('//mnt/share/temp.log', 'a') as f: with redirect_stdout(f): # здесь вызываем основной код print('Some Debug Info') # текст запишется в файл main() Советы: 🔸1. Следует заведомо позаботиться, чтобы путь к файлу был сетевой. 🔸2. Убедитесь что есть доступ на запись файла 🔸3. Эту обёртку нужно делать в самом начале выполнения скрипта, во время вызова основной функции (например main()). 🔸4. Научите коллег пользоваться логгингом! 🔸5. Проследите, что коллеги изучили и используют логгинг. На самом деле вместо файла можно указать любой другой аналогичный объект, например отправка в сеть, но это уже другая история #tricks