Как использовать 'io.StringIO' с 'print >>'? - PullRequest
0 голосов
/ 03 июня 2018

Я получил следующую ошибку:

 Second line.
Traceback (most recent call last):
  File "./main.py", line 8, in <module>
    print >>output, u'Second line.'
TypeError: unicode argument expected, got 'str'

Когда я запускаю следующий код.Я не знаю, что не так.Кто-нибудь может показать мне, как это исправить?

#!/usr/bin/env python
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8:

import io
output = io.StringIO()
output.write(u'First line.\n')
print u'Second line.'
print >>output, u'Second line.'
contents = output.getvalue()
print contents
output.close()

1 Ответ

0 голосов
/ 03 июня 2018

Для Python 2 рассмотрите возможность использования модуля StringIO вместо io.

Код:

from StringIO import StringIO

Код теста:

from StringIO import StringIO
output = StringIO()
output.write(u'First line.\n')
print u'Second line.'
print >>output, u'Second line.'
contents = output.getvalue()
print contents
output.close()

Результаты:

Second line.
First line.
Second line.
...