Проблема с модулем six.StringIO для запуска кода в py2.7? - PullRequest
0 голосов
/ 11 марта 2019

Мы переносим код нашего проекта python из кода py2.7 в py3.7, так как часть кода процесса миграции должна быть совместима с версиями py27 и py37.

, чтобы стать совместимыми с обеими версиями, которые мыИспользуем шесть библиотек.Здесь я мог видеть неожиданное поведение Six.StringIO для чтения объекта Table, которое выдает ошибку, как показано ниже, но это нормально с модулем String.IO.StringIO py2.7. Пожалуйста, предложите подход, чтобы он работал в обоихверсии без каких-либо ошибок В соответствии с Python Doc: его псевдоним , Можете ли вы помочь мне понять это поведение.Спасибо

Вот пример кода для чтения объекта Table в py2.7: Мой вопрос здесь заключается в том, почему six.StringIO не способен генерировать экземпляр, подобный классу StringIO.StringIO py2.7

>> import StringIO
>> StringIO.StringIO(tableObj)
>> <StringIO.StringIO instance at 0x00000000000B2AFF>
>> from six import StringIO as StringIO 
>> StringIO.StringIO(tableObj)
 Traceback (most recent call last):
 File "<pyshell#20>", line 1, in <module> 
      StringIO.StringIO(tableObj)
 TypeError: StringIO() argument 1 must be convertible to a buffer, not Table
 >>
...