Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Чтение вывода внешней программы


Автор: srd 27.5.2005, 09:08
Как из скрипта на питоне запустить внешнюю консольную утилиту (которая выводит результат в stdout), а потом прочитать её вывод?

ОС - Windows XP

Автор: skalex 27.5.2005, 14:39
Вероятно бред ... Но ничего другого не придумал ... smile
Код
import os
logf = '~log'
os.system("dir > " + logf)
f = open(logf, "r")
result = f.read()
f.close()
os.unlink(logf)
print result

Автор: Void 27.5.2005, 19:56
Можно пообщаться с процессом через pipe:
Код

import os

pipe = os.popen("dir")
print pipe.read()

Автор: srd 28.5.2005, 10:25
Спасибо, как раз то, что надо smile

З.Ы.
Я в этом разделе всё время буду теперь тусоваться - начал осваивать Питон и пока не очень успешно.

Автор: srd 4.6.2005, 08:41
А как через pipы не только читать из выходного потока, но и писать во входной?

Автор: Void 4.6.2005, 19:53
Цитата(srd @ 4.6.2005, 10:41)
А как через pipы не только читать из выходного потока, но и писать во входной?

Можно попробовать так:
Код

import os
ins, outs = os.popen2("myprog.exe")
# ins - stdin созданного процесса, outs - stdout
ins.write("some text")
print outs.read()

Автор: srd 6.6.2005, 07:47
Спасибо, попробую...

Автор: aspolyakov 11.1.2009, 14:12
А как в popen2 убрать буферизацию??? Меня одолел уже этот вопрос

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)