goblin_maks
Янв. 15, 2010 16:08:16
python 2.4
выполняю команду через os.system, тогда все только в консоль..
выполняю через os.popen2 тогда только в переменную…а только потом могу ее в стдаут вывести..
надо выполнить команду, видеть ее реалтайм вывод, после этого отредактировать вывод, и запихнуть в файл..
подскажите как реализовать..пробовал….вроде когдато делал такое через /dev/null ..но к вечеру пятницы мозг перестал адекватно воспринимать мир..
Ed
Янв. 15, 2010 17:06:48
Вот нашел какой-то старый код. Похоже на то, что вы ищете:
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()
pasaranax
Янв. 15, 2010 18:05:04
Тогда уж лучше через proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE), а потом proc.stdout читать. А то попены с цифрами вроде как не рекомендованы уже.
goblin_maks
Янв. 15, 2010 18:10:45
пасиб..работает..теперь и через попен и через сабпроцесс..
Ed
Янв. 15, 2010 18:28:58
pasaranax
А то попены с цифрами вроде как не рекомендованы уже.
Я в курсе. Поэтому и написал, что код старый. Идея-то ясна, я надеюсь.