Python3 / SWIG и выходные потоки
Я использую генерируемые SWIG обертки Python для GDCM (поставляется с gdcm.py).
Я запускаю следующий скрипт Python3.
import gdcm
import sys
filename="path_to_data/gdcm_test.dcm"
r = gdcm.Reader()
r.SetFileName(filename)
r.Read()
f=r.GetFile()
ds = f.GetDataSet()
csa_t1 = gdcm.CSAHeader()
t1 = csa_t1.GetCSAImageHeaderInfoTag()
csa_t1.LoadFromDataElement(ds.GetDataElement( t1))
csa_t1.Print(sys.stdout)
Соответствующий фрагмент из файла gdcmswig.py (с функцией, которая оборачивает Print) приведен ниже.
def Print(self, os: 'std::ostream &') -> "void":
"""
void
gdcm::CSAHeader::Print(std::ostream &os) const
Print the CSAHeader (use only if Format == SV10 or NOMAGIC)
"""
return _gdcmswig.CSAHeader_Print(self, os)
Проблема появляется в последней строке моего скрипта. Призыв к печати (sys.stdout).
TypeError: in method 'CSAHeader_Print', argument 2 of type 'std::ostream &'
Проблема, я думаю, состоит в том, что sys.stdout в Python не является фактическим дескриптором выходного файла, но оборачивает дескриптор. Каков наилучший способ решить эту проблему? Заранее спасибо.