pipe
を使用してファイルをpopen
出力したいのですが、どうすればよいですか?
test.py:
while True:
print"hello"
a.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]
これにより、出力の最初の行だけが出力されます。
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
)