Python3 / SWIG和输出流

时间:2015-08-05 12:24:11

标签: python swig gdcm

我正在使用SWIG为GDCM生成的Python包装器(随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)

问题出现在我脚本的最后一行。调用Print(sys.stdout)。

TypeError: in method 'CSAHeader_Print', argument 2 of type 'std::ostream &'

我认为问题是Python的sys.stdout不是实际的输出文件句柄,而是包装句柄。解决这个问题的最佳方法是什么?提前谢谢。

0 个答案:

没有答案