問題タブ [pep3118]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python でバイナリ データをファイルからバッファにロードする
640x480 の画像のセットがあります。これらの画像を Matlab を介してバイナリ ファイル形式に変換しています…次に、各バイナリ ファイルを Python のバッファにロードし、そのバッファからデータを読み取る必要があります。誰かが私がそれを行う方法を手伝ったり、リンクを提案したりできますか? -ありがとう。
python - Python C-API: C 関数から Py_buffer を生成する
Cから任意のPython3関数にデータの大きなバイト配列を渡す方法を理解するのに本当に苦労しています。参考までに、この件に関するいくつかのドキュメント リンクを次に示します。
https://docs.python.org/3.5/extending/embedding.html
ドキュメント内の情報のほとんどは、Python から C にデータを渡すことを想定しているようです。逆のことを行う必要があります。API 関数への参照を見つけましたが、PyBuffer_FromContiguous
どこにも文書化されていません (見つけることができます)。関数のプロトタイプは次のとおりです。
基本的に、私は2つの質問があります:
Py_buffer
これはオブジェクトを構築する正しい方法ですか? これは正しいアプローチですか?Py_buffer
が構築されたら、python 関数の呼び出し用の入力タプル/引数に設定できるにどのようにPy_buffer
関連付けますか?PyObject
これが私が試みているもののコードサンプルです(data_s
typedefを含めるように更新されました):
…これらの問題に関するリードをいただければ幸いです。
python-3.x - PEP 3118 バッファ プロトコル フォーマット文字列の解析
バッファ プロトコルを使用して、python、numpy、および cython の間でバイナリ データを渡すことに興味があります。PEP 3118を見ると、名前付きフィールドやネストされた構造体などの便利な機能のサポートを追加する、構造体の文字列構文にいくつかの追加があるようです。
ただし、バッファ構文の全範囲のサポートは、これら 3 つの場所すべてで制限されているようです。たとえば、次の cython 構造体があるとします。
次のように PEP-3118 準拠のバイト文字列を抽出しようとしています
次のエラー メッセージで失敗し
Invalid base type for memoryview slice: ImageComp
ます。ポインタが含まれている場合、型指定されたメモリ ビューを作成できないためです。
同様に、カスタム文字列または pythonモジュールの関数view.array
を使用して を作成すると、 のような警告が表示されます。struct
calcsize
struct.error: bad char in struct format
herePy_buffer
で説明されているように、手動でオブジェクトを作成して埋めることができますが、これをyieldsで numpy 配列に変換しようとしています。np.asarray
ValueError: 'T{L:width:L:height:&B:pixels:}' is not a valid PEP 3118 buffer format string
これらすべてを念頭に置いて、次の質問があります。
PEP 3118
完全な仕様を利用する標準の python ライブラリにモジュールはありますか?- この構造体形式の構文は、どこかで正式に定義されていますか (つまり、PEG 文法を使用して)?
- ポインターが含まれている場合、cython または numpy に有効なフォーマット文字列を自動的に生成させる方法はありますか?