Что такое Python эквивалентный $ | = 1 в Perl

1

Привет, я очень новичок в Perl и CGI.

Я пытаюсь преобразовать perl-скрипт в python.

В сценарии упоминается $ | = 1. Я понял, что он очищает буфер.

Я ищу, если есть какой-либо эквивалент python для выполнения точной вещи.

Какие-либо предложения??

  • 0
    В частности, $|=1 эквивалентно установке свойства autoflush текущего выбранного дескриптора вывода, заставляющего его сбрасываться при печати вместо буферизации.
  • 0
    Есть ли смысл использовать $| = 1; в скрипте CGI ???
Показать ещё 1 комментарий
Теги:
python-3.x
python-2.7
cgi

1 ответ

3
Лучший ответ

Я бы не стал беспокоиться о том, чтобы портировать эту строку на время, так как поток stdout после каждой print, вероятно, будет наименьшим из ваших беспокойств по переносу.

Но если это так, у вас есть много вариантов:

  • Просто добавьте аргумент flush=True для вызова функции print.
  • Запустите Python в режиме "небуферизованный" с -u переключателя -u.
  • Повторно открыть stdout в небуферизованном режиме (например, окончательный 0 в):
    • sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
  • Напишите функцию обертки print которая затеняет встроенную print и flush stdout
  • Напишите объект TextIOWrapper который обертывает sys.stdout и sys.stdout

Я попытаюсь найти некоторые ссылки для остальных пунктов и отредактировать их.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню