Я хочу pipe
вывести свой файл с помощью popen
, как мне это сделать?
test.py:
while True:
print"hello"
а.py :
import os
os.popen('python test.py')
Я хочу передать вывод, используя os.popen
. как я могу сделать то же самое?
Я хочу pipe
вывести свой файл с помощью popen
, как мне это сделать?
test.py:
while True:
print"hello"
а.py :
import os
os.popen('python test.py')
Я хочу передать вывод, используя os.popen
. как я могу сделать то же самое?
Прежде всего, os.popen() устарел, вместо этого используйте модуль подпроцесса.
Вы можете использовать его следующим образом:
from subprocess import Popen, PIPE
output = Popen(['command-to-run', 'some-argument'], stdout=PIPE)
print output.stdout.read()
Используйте модуль subprocess
, вот пример:
from subprocess import Popen, PIPE
proc = Popen(["python","test.py"], stdout=PIPE)
output = proc.communicate()[0]
test.py
), то .communicate()
использовать не следует. Вместо этого читайте постепенно, используя proc.stdout
напрямую, см. Python: чтение потокового ввода из subprocess.communicate()
- person jfs; 08.07.2016
Это напечатает только первую строку вывода:
a.py:
import os
pipe = os.popen('python test.py')
a = pipe.readline()
print a
... и это напечатает их все
import os
pipe = os.popen('python test.py')
while True:
a = pipe.readline()
print a
(Я изменил test.py на это, чтобы было легче увидеть, что происходит:
#!/usr/bin/python
x = 0
while True:
x = x + 1
print "hello",x
)