Как перенаправить stdout в произвольный файл в Python?
Когда долго выполняющийся скрипт Python (например, веб-приложение) запускается из сеанса ssh и запускается в фоновом режиме, а сеанс ssh закрывается, приложение вызовет ошибку IOError и завершится ошибкой в момент попытки записи в stdout. Мне нужно было найти способ сделать вывод приложения и модулей в файл, а не стандартный вывод, чтобы предотвратить сбой из-за ошибки IOError. В настоящее время я использую nohup для перенаправления вывода в файл, и это выполняет свою работу, но мне было интересно, из любопытства, есть ли способ сделать это без использования nohup.
Я уже пробовал sys .stdout = open ('somefile', 'w')
, но, похоже, это не мешает некоторым внешним модулям по-прежнему выводить на терминал (или, может быть, строка sys.stdout = ...
совсем не стрелял). Я знаю, что это должно работать из более простых сценариев, которые я тестировал, но я также не У меня еще нет времени протестировать веб-приложение.