1

データを生成する C++ コードがあります。データを Python に公開したい。しかし、それは思ったほど簡単ではありません...

この C++ がバイナリにコンパイルされるとしcppcodeます。フレームワークのセットアップ方法が複雑なため、コードは次のようにしか実行できません。

./cppcode {command line arguments} 

cppcode 内では、Python からアクセスしたいデータが生成されます。どういうわけかプログラムを次のように書き直すことができるかどうかはわかっています

CppClass cpp; 
cpp.run( args );

次に、Boost Python で CppClass をラップし、インスタンスを構築し、引数を指定して実行し、生成されたデータにアクセスします。

しかし、今ではコードを次のようにしか実行できません./cppcode {command line arguments}

./cppcode./cppcode が終了した後、そのメモリはシステムによって再収集され、Python からはもう見ることができないため、Python から呼び出すことはできません。それを回避する方法はありますか?

私は考えることができます:(1)./cppcodeにデータをディスクにダンプさせ、Pythonにそれを読み取らせます。(2) データを stdout にダンプし、python スクリプトにパイプします。しかし、どちらにしても、Python で文字列解析を行う必要があり、遅くなる可能性があります。それを回避する方法はありますか?

4

1 に答える 1

1

データを ccpcode からディスクに JSON 形式でダンプし、Python から simplejson を使用して解析することができます。そうすれば、独自のパーサーを作成する必要がなくなります。

C++ JSON モジュールの例を次に示します: https://stackoverflow.com/questions/245973/whats-the-best-c-json-parser

于 2012-03-06T14:57:23.250 に答える