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

TGINSIGHT POST

Post #287

@pythonotes

Python Заметки

Views1,810Post view count
PostedSep 2909/29/2021, 09:00 AM
Post content

Post content

В Python есть удобный режим, определяющий код с неверно закрытыми ресурсами. Этот режим называется Development Mode и включается двумя способами: Переменная окружения export PYTHONDEVMODE=1 python3 app.py Аргументы python3 -X dev app.py Если не закрыть файл должным образом, то вы получите в консоль ResourceWarning. Вот пример файла # app.py import psutil, os open('testfile', 'w') 123 print('process handlers:', psutil.Process(os.getpid()).open_files()) В этом примере я использую пакет psutil, чтобы убедиться, что перед выходом открытых файлов в моём процессе не осталось. При этом ResourceWarning всё равно будет выброшен, причём еще до использования psutil. app.py:3: ResourceWarning: unclosed file <_io.TextIOWrapper name='testfile' mode='w' encoding='UTF-8'> open('testfile', 'w') Object allocated at (most recent call last): File "app.py", lineno 3 open('testfile', 'w') process handlers: [] Для отображения строки с ошибкой требуется включить tracemalloc, тоже с помощью переменой или аргументов запуска. Смотрите примеры в доке. ➡️ Отсюда вывод: Всегда явно закрывайте файлы! Пишите чистый и предсказуемый код. #tricks#libs