#やりたいこと
pythonのコードからC++のプログラムを子プロセスとして実行します。その後、C++のプログラムの出力をpythonコードで取得したいです。
具体的なコードを以下に示します。
ややこしいですが、popen.pyで、popenを使用しcall.pyを実行します。その後、call.pyでcheck_callを使用し、C++のhello.cppを実行します。
ここで、hello.cppで出力される"Hello world"という文字列をpopen.pyで取得する方法を教えていただきたいです。
少しややこしいですが、よろしくお願いします。
popen.py
python
1import subprocess 2 3print 'popen start' 4 5cmd = 'python call.py' 6proc = subprocess.Popen(cmd.split()) 7value = proc.communicate() 8print value 9 10print 'popen end'
call.py
python
1import subprocess 2 3print '!!! start' 4 5cmd = './hello' 6retcode = subprocess.check_call(cmd) 7 8 9print '!!! end'
hello.cpp
cpp
1#include <iostream> 2 3using namespace std; 4 5int main(){ 6 cout << "Hello world." << endl; 7 return 0; 8}
#環境
OS:ubuntu18.04
python:2.7
g++:7.5.0
#変更点
call.py
python
1import subprocess 2 3print '!!! start' 4 5cmd = './hello' 6retcode = subprocess.check_output(cmd) 7print(retcode) 8 9print '!!! end'
出力
popen start !!! start Hello world. !!! end (None, None) popen end
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/28 05:51