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 не является фактическим дескриптором выходного файла, но оборачивает дескриптор. Каков наилучший способ решить эту проблему? Заранее спасибо.

0 ответов

Другие вопросы по тегам