Странная задержка при вызове readline () stdoutPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Странная задержка при вызове readline () stdout

Сообщение Anonymous »

Я вызываю исполняемый файл, записанный в C, через конструктор Popen в Python, чтобы прочитать то, что обычно выводит исполняемый файл в консоль/терминал. Printf в коде C завершается с помощью \ n регулярно, и он постоянно выводит в терминал, пока не будет прерывается, например, прерывание клавиш.

Код: Выделить всё

import subprocess
import time

proc = subprocess.Popen(["PATH TO EXECUTABLE"],stdout=subprocess.PIPE)

while True:

start_time = time.time()
line = proc.stdout.readline()
print(line)
print(time.time()-start.time)

Я измерил время для целей отладки. Микросекунд, но каждый 40 -й или около того итерации демонстрирует то же поведение, что и первая итерация снова ( от 20 до 30 секунд , чтобы сделать line = proc.stdout.readline () ). Похоже, что чтение stdout занимает много времени, возможно, потому, что какой-то буфер заполняется, прежде чем его выпускают в stdout ? Я не думаю, что исполняемый файл каким-то образом буферирует, потому что новая линия обычно промывает буфер в C. Я не знаю, является ли это проблемой с кодом C или сценарием Python.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -of-stdout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ничего не происходит после subprocess.stdout.readline()/subprocess.stdout.read()
    Anonymous » » в форуме Python
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • Не могу получить GNU Readline с Bash для использования STDOUT/FD1 в качестве RL_OUTSTREAM
    Anonymous » » в форуме Linux
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Не могу получить GNU Readline с Bash для использования STDOUT/FD1 в качестве RL_OUTSTREAM
    Anonymous » » в форуме Linux
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Почему stdout pipe readline () не ждет нового персонажа?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Почему stdout pipe readline () не ждет нового персонажа?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»