【问题标题】:Text mode adapter for binary (or text) mode file二进制(或文本)模式文件的文本模式适配器
【发布时间】:2015-07-02 23:30:19
【问题描述】:

我有一个方法 (parse) 处理来自输入文件的数据,该文件可能已以二进制模式打开。但是,在某些子类中,如果文件以文本模式打开,则处理数据会更容易。所以我的问题是,是否有一种简单的方法可以包装任何文件以获得充当文本模式文件的内容。

请注意,"Convert binary input stream to text mode" 中的解决方案并没有真正实现,因为它只产生一个迭代器(而不是一个类似文件的对象)。另请注意,首先以文本模式打开文件不是一种选择。

如果它简化了解决方案,可以假设输入文件确实以二进制模式打开。

【问题讨论】:

    标签: file python-3.x


    【解决方案1】:

    看起来io.TextIOWrapper中的buffer参数实际上是一个io.BufferedReader对象(即以二进制模式打开的文件)。然而,这在阅读文档时并不明显。

    如果已知文件以二进制模式打开(io.RawIOBaseio.BufferedIOBase 的实例),这似乎可行:

    srctxt = io.TextIOWrapper(src)
    

    但如果src 已经以文本模式打开,则它不起作用,但可以通过检查它是否为io.TextIOBase 来测试:

    if isinstance(src, io.TextIOBase):
        srctxt = src
    else:
        srctxt = io.TextIOWrapper(src)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多