Управление памятью Python Shell для всегда запущенного скрипта

Я написал скрипт на Python (версия Python 3), который работает круглосуточно и без выходных. Я запускаю свой сценарий на моем компьютере с Windows следующим образом. Я щелкаю правой кнопкой мыши файл .py, затем нажимаю «Редактировать с помощью IDLE», а затем «Выполнить». У скрипта нет проблем, но из-за множества инструкций, напечатанных в оболочке python (я использую регистратор), через пару дней эта оболочка python становится очень тяжелой. Мой вопрос для новичков следующий. Можно ли ограничить количество строк, временно сохраненных в оболочке python, определенным числом? Или, может быть, у кого-то есть лучшее предложение запустить этот постоянно работающий скрипт, который печатает множество шагов скрипта в оболочке? Пожалуйста, обратите внимание, как я не спрашиваю, как запускать скрипт 24/7, я так понимаю, что лучший способ сделать это - через VPS. Моя проблема в том, что данные, сохраненные в отображаемой оболочке python, становятся все больше и больше с каждым днем, поэтому мне только интересно, как ограничить данные, временно отображаемые / сохраняемые в ней. Спасибо

Лучшим ответом является то, что вы должны использовать модуль регистрации для сохранения вывода где-нибудь, а не держать открытый терминал с напечатанными операторами в качестве вывода. Тогда оболочка перестанет потреблять память, и вы используете файловую систему для хранения. Кроме того, почему вы запускаете его из IDLE? Почему не только c:\path\to\python.exe myscript.py?

g.d.d.c 30.12.2018 18:05
«Я не спрашиваю, как запустить скрипт 24/7» - Должен быть. Это XY проблема.
Jonathon Reinhart 30.12.2018 18:06

@ g.d.d.c Я также печатаю данные уровня отладки в файле журнала, я использовал оболочку, просто чтобы следить за основными шагами, которые в настоящее время происходят с моим скриптом. "Почему не просто c: \ path \ to \ python.exe myscript.py" извиняюсь за мой невежественный вопрос, но разве это лучше, чем запускать его в режиме ожидания? Спасибо!

Angelo 30.12.2018 18:09

Да, потому что у вас нет памяти, потребляющей IDLE, и автоматические буферы консоли будут задействованы для ваших операторов вывода. Если вам нужно иметь возможность просматривать и просматривать информацию во время выполнения сценария, он должен перейти в журнал. Установите отдельный регистратор, если вы хотите, чтобы он был отделен от других выходных данных вашего скрипта, но запускать его из IDLE «просто для того, чтобы следить за ним» - ужасная практика.

g.d.d.c 31.12.2018 18:05

Понятно. Хорошо, большое спасибо за ваше доброе и ценное предложение. С новым годом!

Angelo 31.12.2018 18:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
5
151
0

Другие вопросы по теме