import io fp = io.StringIO(initial_value='', newline='\n')
Класс io.StringIO
поток в памяти для текстового ввода-вывода. Текстовый буфер сбрасывается при вызове метода StringIO.close()
.
Начальное значение буфера может быть установлено путем присваивания значения аргументу initial_value
. Если перевод новой строки newline
включен, новые строки будут закодированы как при выполнении метода StringIO.write()
. Поток располагается в начале буфера.
Аргумент newline
работает по тому же принципу, что и в io.TextIOWrapper
. По умолчанию в качестве концов строк рассматриваются только символы \n
, а перевод новой строки не выполняется. Если для новой строки установлено значение None
, новые строки записываются как \n
на всех платформах, но при чтении выполняется универсальное декодирование новой строки.
Класс io.StringIO
наследует атрибуты и методы из класса io.TextIOBase
и его родителей, а так же дополнительно предоставляет метод.
io.StringIO
:StringIO.getvalue()
:Метод возвращает строку str
содержащую все содержимое буфера. Новые строки декодируются как при методе StringIO.read()
, хотя позиция потока не изменяется.
import io output = io.StringIO() output.write('First line.\n') print('Second line.', file=output) # Извлекает содержимое файла 'First line.\nSecond line.\n' contents = output.getvalue() # Закрытие объекта и сброс буфера памяти # Теперь `output.getvalue()` вызовет исключение. output.close()
Смотрите еще один пример использования io.StringIO
.