kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 raj
raj
Вопрос

Не удается получить данные при использовании функции read() из StringIO в python

Использую версию Python2.7. Ниже приведен мой пример кода.

import StringIO
import sys

buff = StringIO.StringIO()
buff.write("hello")
print buff.read()

В приведенной выше программе read() возвращает мне ничего, в то время как getvalue() возвращает мне "hello". Может ли кто-нибудь помочь мне решить эту проблему? Мне нужен read(), потому что мой следующий код включает чтение "n" байт.

64 2012-04-22T05:55:02+00:00 2
 Constantinius
Constantinius
Редактировал вопрос 10-го января 2013 в 11:14
Программирование
python
stringio
Joel Cornett
Joel Cornett
22-го апреля 2012 в 6:00
2012-04-22T06:00:35+00:00
Дополнительно
Источник
Редактировать
#16002394

Вам необходимо сбросить позицию буфера в начало. Это можно сделать, выполнив команду buff.seek(0).

Каждый раз, когда вы читаете или записываете в буфер, позиция сдвигается на единицу. Допустим, вы начинаете с пустого буфера.

Значение буфера - """, позиция буфера - 0. Вы делаете buff.write("hello"). Очевидно, что значение буфера теперь равно hello. Однако позиция буфера теперь равна 5. Когда вы вызываете read(), после позиции 5 читать нечего! Поэтому возвращается пустая строка.

Joel Cornett
Joel Cornett
Редактировал ответ 22-го апреля 2012 в 6:24
91
0
Vincent Lee
Vincent Lee
28-го июля 2015 в 11:55
2015-07-28T23:55:52+00:00
Дополнительно
Источник
Редактировать
#16002395
In [38]: out_2 = StringIO.StringIO('not use write') # be initialized to an existing string by passing the string to the constructor

In [39]: out_2.getvalue()
Out[39]: 'not use write'

In [40]: out_2.read()
Out[40]: 'not use write'

или

In [5]: out = StringIO.StringIO()

In [6]: out.write('use write')

In [8]: out.seek(0)

In [9]: out.read()
Out[9]: 'use write'
Vincent Lee
Vincent Lee
Редактировал ответ 29-го июля 2015 в 12:17
19
0
Похожие сообщества 30
Python beginners
Python beginners
17 345 пользователей
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
Открыть telegram
Python
Python
14 260 пользователей
Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/1961404
Открыть telegram
🐍 Python Stepik Chat
🐍 Python Stepik Chat
11 616 пользователей
Этот уютный чат создан для помощи в решение задач на прекрасном курсе "Поколение Python: курс для начинающих" и не только. Правила: https://t.me/pythonstepikchat/619142 Чат для оффтопа - t.me/+fqNb78zlQY81NGUy Наш канал - @kimport_this
Открыть telegram
aiogram
aiogram
8 192 пользователей
Репозиторий: https://github.com/aiogram/aiogram Сайт: https://aiogram.dev Полезная информация: https://t.me/aiogram_ru/1421485?thread=1421477
Открыть telegram
Python — вакансии и аналитика
Python — вакансии и аналитика
6 468 пользователей
Публикуем вакансии и запросы на поиск работы по направлению Python, Flask и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @golang_jobs, @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs
Открыть telegram
Сообщество Python Программистов
Сообщество Python Программистов
5 885 пользователей
Канал: @pip_install Наши сайты: https://python-scripts.com https://selenium-python.com https://itfy.org Мы в ВК: https://vk.com/open_sourcecode Вакансии: https://t.me/python_scripts_hr
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Денис Васьков
Зарегистрирован 16 часов назад
2
Dima Patrushev
Зарегистрирован 2 дня назад
3
sirojidddin otaboyev
Зарегистрирован 1 неделю назад
4
Елена Гайдамамакинат
Зарегистрирован 1 неделю назад
5
Иван Степанюк
Зарегистрирован 1 неделю назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией