Операторы печати Python буферизуются с> перенаправлением вывода

Я выполняю инструкции print в python. Я выполняю свой скрипт так:

python script.py > out.log nohup & 

out.log печати не отображаются в out.log но программа заканчивается нормально.

Эта строка кода находится в .sh файле, который я выполняю ./script.sh

Обновление: журнал получает все данные, но не до тех пор, пока не будет напечатано определенное количество строк. Кажется, это буферизация вывода.

2 Solutions collect form web for “Операторы печати Python буферизуются с> перенаправлением вывода”

Когда stdout отправляется на tty, он будет буферизироваться по строке и будет краснеть каждую строку, но при перенаправлении на файл или канал он будет полностью буферизован и будет периодически очищаться только при переполнении буфера.

Вам нужно будет добавить sys.stdout.flush() после каждой строки, если вы хотите, чтобы результат был немедленно видимым или полностью отключил буферизацию. См. Отключить буферизацию вывода для способов выполнения последнего:

  1. Используйте ключ командной строки -u
  2. Оберните sys.stdout в объект, который сбрасывается после каждой записи
  3. Установить PYTHONUNBUFFERED env var
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

Ты пробовал:

  1. Запуск его без перенаправления и обеспечение того, чтобы все было напечатано, как ожидалось
  2. Запускать его не через скрипт оболочки, а просто из командной строки

?

Эти шаги могут помочь вам «вернуться домой» в проблему.

  • Как сделать python, программа командной строки autocomplete произвольные вещи НЕ интерпретатор
  • Как открыть файл со стандартным приложением?
  • Программирование на samsung chromebook
  • Параметры фильтра для функции sniff в scapy
  • Планирование регулярного мероприятия: альтернативы Cron / Cron (включая сельдерей)
  • Python Linux dmidecode, как получить информацию HW с помощью Parsing?
  • Ошибка модуля Python в Linux
  • Автоматизировать firefox с помощью python?
  • Подключение к базе данных Filemaker с использованием JDBC, Python и JayDeBeApi
  • Python: получить выход из командной строки 'history'
  • Ошибка при установке Python
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.