Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2018 18:54:57

polin11
Зарегистрирован: 2013-05-02
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

Модуль io.StringIO

есть вопрос Python 3.3
you use the io.StringIO module when
Answer:
1) using a string-like object that is an immutable type
2) writing string contents to a diskfile
3)performing text based input/output operations on a file-like in memory stream
4)manipulating a diskfiles contents without using cumbersome seek/write operations
5) transmitting a string over an open soket
Насколько понимаю, если нужно работать со строкой как с файлом. Модуль StringIO как раз дает такую возможность.
Но какой вариант правильный не могу сообразить, по моему ни один не подходит, ближе всего в моем понимании 1) или 3)

Офлайн

#2 Апрель 6, 2018 19:54:44

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Модуль io.StringIO

Думаю , что никакой . Насколько я знаю , базовый принип работы этого модуля состоив в том, чтобы не записывать строку в файл , а в буфер.

Офлайн

#3 Апрель 6, 2018 23:18:33

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Модуль io.StringIO

мда….
3)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Апрель 7, 2018 15:41:03

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

Модуль io.StringIO

JOHN_16
мда…. 3)
Был не прав. Модуль StringIO позволяет работать со строкой как с файловым объектом. Все операции с файловым объектом производится в оперативной памяти. Иногда даже “Мдаа…” помогает задуматься

Отредактировано spikejke (Апрель 7, 2018 15:57:00)

Офлайн

#5 Апрель 8, 2018 06:27:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Модуль io.StringIO

io.StringIO не является полной заменой файла, так как в нём нет файлового дескриптора. Его невозможно использовать во многих операциях, где возможно использовать файлы. В частности subprocess.Popen() не может использовать такой объект в качестве потока ввода/вывода. Может, это и недоделка, но с такой проблемой сталкивался и приходилось делать отдельный класс для реализации псевдофайла при использовании subprocess.Popen() в юнит-тестах (для сравнения вывода программы с эталонным).



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version