Класс io.StringIO
предоставляет удобный способ работы с текстом в памяти с помощью файлового API, методов read()
, write()
и т. д.
Использование StringIO
для создания больших строк может в некоторых случаях снизить производительность по сравнению с другими методами конкатенации строк. Потоковые буферы в памяти также полезны для тестирования, когда запись в реальный файл на диске может замедлить набор тестов.
StringIO
:import io # Запись в буфер output = io.StringIO() output.write('This goes into the buffer. ') print('And so does this.', file=output) # Получение записанного print(output.getvalue()) # This goes into the buffer. And so does this. # сбросить буфер памяти output.close() # Инициализация буфера чтения input = io.StringIO('Inital value for read buffer') # Считывание из буфера print(input.read()) # Inital value for read buffer
В этом примере используется метод input.read()
, но так же доступны методы readline()
и readlines()
. Класс io.StringIO
также предоставляет метод seek()
, который может быть полезен для перемещения указателя по тексту.