Как преобразовать строку в буфер в Python 3.1?

Я пытаюсь передать что-то в subprocess используя следующую строку:

 p.communicate("insert into egg values ('egg');"); TypeError: must be bytes or buffer, not str 

Как преобразовать строку в буфер?

2 Solutions collect form web for “Как преобразовать строку в буфер в Python 3.1?”

Правильный ответ:

 p.communicate(b"insert into egg values ('egg');"); 

Обратите внимание на начало b, сообщая вам, что это строка байтов, а не строка символов в Юникоде. Кроме того, если вы читаете это из файла:

 value = open('thefile', 'rt').read() p.communicate(value); 

Изменение, которое:

 value = open('thefile', 'rb').read() p.communicate(value); 

Снова отметим «b». Теперь, если ваше value представляет собой строку, которую вы получаете от API, который возвращает только строки, что бы вы ни делали, вам необходимо его закодировать.

 p.communicate(value.encode('latin-1'); 

Latin-1, потому что в отличие от ASCII он поддерживает все 256 байтов. Но это говорит о том, что двоичные данные в unicode запрашивают проблемы. Лучше, если вы сможете сделать его двоичным с самого начала.

Вы можете преобразовать его в байты с помощью метода encode :

 >>> "insert into egg values ('egg');".encode('ascii') # ascii is just an example b"insert into egg values ('egg');" 
  • Ошибка ввода () - NameError: имя «...» не определено
  • SyntaxError: неожиданный EOF при разборе
  • Обнаружение того, что объект неоднократно повторяется
  • Ранг Панды по нескольким столбцам
  • Python: путаницы с urljoin
  • получить n-ю строку строки в python
  • Drop NaN-ячейки и перемещение ненулевых значений в соответствии с индексом Datetime
  • Как выбрать строки, которые содержат определенное значение, по крайней мере, в одном из элементов в строке?
  • Не удалось установить boto в python3
  • Как объединить эти две строки кода в один (Python 3.X)?
  • Правильное выражение Python 3 для поиска многострочного комментария
  •  
    Interesting Posts for Van-Lav

    Добавление более одного значения в словарь при циклическом перемещении по строке

    Как добавить контрольные точки в программу python в IDLE?

    Преобразование заголовка строки в столбец для Pandas DataFrame,

    python – матрица RGB изображения

    Как я могу сделать INNER JOIN в Django в старой базе данных?

    Создание виртуальной машины с помощью версии Anaconda Python

    Где сохранить мои собственные сценарии, чтобы мои скрипты python могли получить доступ к модулю в каталоге по умолчанию?

    Что такое питонический способ дифференцирования строки и списка?

    Рекурсия хвоста Фибоначчи

    Python CGI os.system вызывает неправильный заголовок

    Переопределить класс Autobahn / Twisted WebsocketClientProtocol

    более эффективный способ вычисления расстояния в numpy?

    Как заменить слова, подсчитать слово и сохранить счет

    Должны ли мы использовать Epydoc, Sphinx или что-то еще для документирования API Python?

    Как использовать внешние переменные в Python, такие как «extern int x;» в C?

    Python - лучший язык программирования в мире.