как будто это может быть ошибкой, поэтому я зарегистрировал ее в системе отслеживания проблем Python как 32600. Обходные пути, которые исправляют необходимые свойства из IOBase, похоже, заставляют все работать, и кажется, что они должны быть там, независимо от того, является ли объект IO буфер или фактический (временный) файл.

hon 3.6.1 я попытался обернуть временный файл tempfile.SpooledTeoraryFile в io.TextIOWrapper:

with tempfile.SpooledTemporaryFile() as tfh:
    do_some_download(tfh)
    tfh.seek(0)
    wrapper = io.TextIOWrapper(tfh, encoding='utf-8')
    yield from do_some_text_formatting(wrapper)

Линияwrapper = io.TextIOWrapper(tfh, encoding='utf-8') дает мне ошибку:

AttributeError: 'SpooledTemporaryFile' object has no attribute 'readable'

Если я создаю простой класс, как это, я могу обойти ошибку (я получаю похожие ошибки дляwritable а такжеseekable):

class MySpooledTempfile(tempfile.SpooledTemporaryFile):                                                                                
    @property                                                                                                                          
    def readable(self):                                                                                                                
        return self._file.readable                                                                                                     

    @property                                                                                                                          
    def writable(self):                                                                                                                
        return self._file.writable                                                                                                     

    @property                                                                                                                          
    def seekable(self):                                                                                                                
        return self._file.seekable 

Есть ли веская причина, почему tempfile.SpooledTeditionalFile еще не имеет этих атрибутов?

Ответы на вопрос(1)

Ваш ответ на вопрос