Как я могу анализировать вывод моей команды, которую я транслирую в файл, в режиме реального времени, когда файл написан?Анализ вывода подпроцесса. Приобретите при подключении к файлу
Это то, что я до сих пор:
with open('output.log', 'w') as out:
command = ['pg_dump', 'myDB']
p = subprocess.Popen(cmd, stdout=out, stderr=subprocess.STDOUT)
for line in iter(p.stdout.readline, b''):
sys.stdout.flush()
print(">>> " + line.rstrip())
Но это порождает следующую ошибку:
Traceback (most recent call last):
File "pipe-to-file.py", line 95, in <module>
for line in iter(p.stdout.readline, b''):
AttributeError: 'NoneType' object has no attribute 'readline'
Почему p.stdout
равна None
здесь?
Использование 'общения()' даст вам результат как только процесс будет завершен. Просто прочитайте из 'p.stdout', как это сделал OP, но с' subprocess.PIPE' передал, как вы это делали. –