如何使用Python流对象



我有一个函数,它接受一个打开的文件对象file并向其写入数据,如下所示:

def Write(self, file):
    file.write("Data")

现在我想测试这个函数,我认为用某种不向文件中写入数据的流来做这件事会很好。除了StringIO类之外,我找不到能完成这项工作的Python2.7类。然而,在Python2.7中,这个类需要在write函数中使用unicode字符串。(file.write(u"Data"))所以我不能用StringIO类测试我的Write函数
在我的变通方法中,我创建了一个小的伪类

class MyStream(object):
    S = property(lambda self: self._S)
    def __init__(self):
        self._S = ""
    def write(self, s):
        self._S += s

用它我现在可以成功地测试我的CCD_ 5功能。

我的问题:
有没有一个原生python类也能做到这一点
提前咨询任何建议
谨向Woltan 致敬

io的文档所示:

由于此模块主要是为Python3.x设计的,因此您必须注意,本文档中所有使用的"字节"都是指str类型(字节是其别名),所有使用"文本"的都是指unicode类型。此外,这两种类型在io API中是不可互换的。

也就是说,如果使用后端口Python3IO库,则必须使用unicode。然而,原始的StringIO类——它考虑字节(Python 2字符串)文本并接受它们——仍然存在于Python 2.7中,只是不在后端口的io中。相反,它有自己的模块,也称为StringIO

相关内容

  • 没有找到相关文章

最新更新