URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8474
[ Назад ]

Исходное сообщение
"Python, запуск процесса в трубу через Popen "

Отправлено Python , 10-Окт-09 17:37 
import subprocess as shell

po = shell.Popen(["xz", "-d -c /tmp/freetype-2.3.5-i486-1.txz"], stdout=PIPE).stdout

NameError: global name 'PIPE' is not defined


Как открыть процесс и получить файловый объект и что бы это работало ?


Содержание

Сообщения в этом обсуждении
"Python, запуск процесса в трубу через Popen "
Отправлено jd , 11-Окт-09 05:19 
Не вполне точно понял, что вы пытаетесь сделать, но зная о питоне только, что это не змея и пользуясь гуглом (python popen example), за две минуты получил это:
import os
p = os.popen("echo hello; echo there")
for line in p.readlines():
  print line

Были также какие-то вариации на тему popen2, popen3, чтобы получить не только stdout...

И у меня к вам встречный вопрос: что помешало вам найти это самостоятельно?


"Python, запуск процесса в трубу через Popen "
Отправлено Python , 11-Окт-09 11:47 
>Не вполне точно понял, что вы пытаетесь сделать, но зная о питоне
>только, что это не змея и пользуясь гуглом (python popen example),
>за две минуты получил это:
>
import os 
>p = os.popen("echo hello; echo there")
>for line in p.readlines():
>  print line

>Были также какие-то вариации на тему popen2, popen3, чтобы получить не только
>stdout...
>

Я нашёл, но примеры и то как это расписано во встроенной справке не работают - вылетает ошибка, я её привёл в посте - NameError, так быть не должно. А то что вы нашли, из другого модуля.
>И у меня к вам встречный вопрос: что помешало вам найти это
>самостоятельно?

Не всё так просто. Ваш пример выдаёт ошибку:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa9 in position 2550: unexpected code byte

И ваш вопрос не по теме. Мне помешало то что на русскоязычных форумах когда задаёшь вопрос тебе не отвечают по теме (а все ответы сохраняются для последующего поиска ) а в оффтоп всё заводят. Всё это спам.

Мой вопрос: Как всё таки получить файловый объект в Python/Пайтоне/Питоне (file object) запустив в системе внешнюю программу которая передаёт результат своей работы (типа binary stream) на stdout ?  


"Python, запуск процесса в трубу через Popen "
Отправлено Python , 11-Окт-09 12:02 
>И у меня к вам встречный вопрос: что помешало вам найти это
>самостоятельно?

БОЛЬШОЕ спасибо, помощь была безценной ...

Вот то же самое:
http://bytes.com/topic/python/answers/802788-popen-nameerror...



"Python, запуск процесса в трубу через Popen "
Отправлено Igor P. , 11-Ноя-09 01:09 
>NameError: global name 'PIPE' is not defined

shell.PIPE