polin11
Апрель 6, 2018 18:54:57
есть вопрос 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)
spikejke
Апрель 6, 2018 19:54:44
Думаю , что никакой . Насколько я знаю , базовый принип работы этого модуля состоив в том, чтобы не записывать строку в файл , а в буфер.
JOHN_16
Апрель 6, 2018 23:18:33
мда….
3)
spikejke
Апрель 7, 2018 15:41:03
JOHN_16
мда…. 3)
Был не прав. Модуль StringIO позволяет работать со строкой как с файловым объектом. Все операции с файловым объектом производится в оперативной памяти. Иногда даже “Мдаа…” помогает задуматься
py.user.next
Апрель 8, 2018 06:27:15
io.StringIO не является полной заменой файла, так как в нём нет файлового дескриптора. Его невозможно использовать во многих операциях, где возможно использовать файлы. В частности subprocess.Popen() не может использовать такой объект в качестве потока ввода/вывода. Может, это и недоделка, но с такой проблемой сталкивался и приходилось делать отдельный класс для реализации псевдофайла при использовании subprocess.Popen() в юнит-тестах (для сравнения вывода программы с эталонным).