Я использую Swig обертку openbabel (написано на C++, и поставить питон обертку через глоток)Как stringfy глотка объекта матрицы в питоне
Ниже я просто использовать его для чтения структуры молекулы файла и получить свойство ее ячейки.
import pybel
for molecule in pybel.readfile('pdb','./test.pdb'):
unitcell = molecule.unitcell
print unitcell
|..>
|..>
<openbabel.OBUnitCell; proxy of <Swig Object of type 'OpenBabel::OBUnitCell *' at 0x17b390c0> >
unitcell имеет функцию Cellmatrix(),
unitcell.GetCellMatrix()
<22> <openbabel.matrix3x3; proxy of <Swig Object of type 'OpenBabel::matrix3x3 *' at 0x17b3ecf0> >
OpenBabel :: matrix3x3 что-то вроде:
1 2 3
4 5 6
7 8 9
мне интересно, как распечатать содержимое matrix3 * 3. Я пробовал __str__
и __repr__
с ним.
Любой общий способ stringfy содержимого матрицы, завернутой качанием в python?
благодаря
Две проблемы с этим ответом: 1. указанная память высвобождается до того, как вы вернетесь из своей функции, и 2. SWIG поддерживает 'std :: string', но сначала вам нужно выполнить'% include '. –
Flexo