p.poll () указывает, выполняется ли процесс.Так что он возвращает false, как только программа завершается.Так что это не то, что вы должны проверять.
ваш код:
for i in p.stdout.readline():
читает одну строку и затем перебирает каждую букву в этой строке.Не то, что вы хотели.Используйте:
for i in p.stdout.readlines():
, который будет возвращать каждую строку.
Но это прочитает весь файл перед созданием каких-либо строк, вероятно, не того, что вы хотели.
Поэтому используйте:
for line in p.stdout:
Что должно давать вам каждую строку, строку за строкой, пока больше нечего читать