Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2010 16:08:16

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в stdout и в переменную паралельно шеловой команды

python 2.4
выполняю команду через os.system, тогда все только в консоль..
выполняю через os.popen2 тогда только в переменную…а только потом могу ее в стдаут вывести..

надо выполнить команду, видеть ее реалтайм вывод, после этого отредактировать вывод, и запихнуть в файл..

подскажите как реализовать..пробовал….вроде когдато делал такое через /dev/null ..но к вечеру пятницы мозг перестал адекватно воспринимать мир..



Офлайн

#2 Янв. 15, 2010 17:06:48

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

вывод в stdout и в переменную паралельно шеловой команды

Вот нашел какой-то старый код. Похоже на то, что вы ищете:

pipe = popen2.Popen3("ls -la /etc", 0)

out = []
while True:
line = pipe.fromchild.readline().strip()
if not line:
break
print line # вывод по мере поступления
out.append(line) # собирание для последующей обработки

status = pipe.wait()



Офлайн

#3 Янв. 15, 2010 18:05:04

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в stdout и в переменную паралельно шеловой команды

Тогда уж лучше через proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE), а потом proc.stdout читать. А то попены с цифрами вроде как не рекомендованы уже.



Офлайн

#4 Янв. 15, 2010 18:10:45

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

вывод в stdout и в переменную паралельно шеловой команды

пасиб..работает..теперь и через попен и через сабпроцесс..



Офлайн

#5 Янв. 15, 2010 18:28:58

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

вывод в stdout и в переменную паралельно шеловой команды

pasaranax
А то попены с цифрами вроде как не рекомендованы уже.
Я в курсе. Поэтому и написал, что код старый. Идея-то ясна, я надеюсь.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version