python - Access contents of PyBuffer from C -
मैंने अजगर में एक बफर ऑब्जेक्ट बनाया है जैसे:
f = io.open ('Some_file', 'rb') byte_stream = बफर (f.read (4096))
अब मैं एक कोड के पैरामीटर के रूप में byte_stream
से गुजर रहा हूं समारोह, SWIG के माध्यम से मेरे पास डेटा को परिवर्तित करने के लिए एक टाइपमेप है जो इस तरह दिखता है:
% typemap (में) अहस्ताक्षरित चार * बाइट_स्ट्रीम {PyObject * buf = $ input; // कुछ कोड बफ़ की सामग्री को पढ़ने के लिए}
मैंने कुछ भिन्न चीजों की कोशिश की है बग मेरे बाइट_स्ट्रीम की वास्तविक सामग्री / मान को नहीं प्राप्त कर सकता है। सी एपीआई का उपयोग करके मैं अपने byte_stream
की सामग्री को कैसे परिवर्तित या एक्सेस कर सकता हूं? सी डेटा को बफर में परिवर्तित करने के लिए कई अलग-अलग विधियां हैं लेकिन कोई भी ऐसा नहीं है जो मुझे दूसरे तरीके से जाने के लिए मिल सकता है मैंने इस ऑब्जेक्ट को जीसीबी में देखने की कोशिश की है, लेकिन न तो यह, या मेरे डेटा को शामिल करने के लिए यह मान है।
(मैं बफ़र्स का उपयोग कर रहा हूँ क्योंकि मैं डेटा को स्ट्रिंग में कनवर्ट करना जब फ़ाइल से इसे पढ़ते हुए) मैं लिनक्स पर अजगर 2.6 का उपयोग कर रहा हूं।
- धन्यवाद पावेल
मैं बफ़र्स का उपयोग कर रहा हूँ क्योंकि मैं फ़ाइल से इसे पढ़ते समय डेटा को स्ट्रिंग में परिवर्तित करने के ओवरहेड से बचना चाहता हूं
आप कुछ भी नहीं से बच रहे हैं । स्ट्रिंग पहले से ही read ()
विधि द्वारा बनाया गया है कॉलिंग बफ़र ()
बस उस स्ट्रिंग की ओर इशारा करते हुए अतिरिक्त बफ़र ऑब्जेक्ट बनाता है।
बफ़र ऑब्जेक्ट द्वारा इंगित की गई मेमोरी में प्राप्त करने के लिए, PyObject_AsReadBuffer () />। यह भी देखें।
Comments
Post a Comment