Как преобразовать строку в буфер в Python 3.1?
Я пытаюсь передать что-то в subprocess
используя следующую строку:
p.communicate("insert into egg values ('egg');"); TypeError: must be bytes or buffer, not str
Как преобразовать строку в буфер?
- Matplotlib axvspan - сплошная заливка?
- Отключить хеш-рандомизацию из программы python
- Перенос первого и последнего элементов в список
- Поднимите и поднимите холст поверх холста в tkinter
- Получение более полезного вывода ошибок модуля «logging» в python
- Вывод Python в Консоль внутри подпроцесса из дочернего скребка
- ImportError: Нет модуля с именем 'xlrd'
- Вход в два файла с различными настройками
- Сравнение и замена значений внутри DataFrames
- как я могу получить отсутствие красных пикселей и отсутствие чёрных пикселей в изображении PIL
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');"
- Как сделать строку unicode с python3
- `apply_async` молчание" ошибки общей очереди "
- ImportError: нет модуля с именем cv2.cv
- Ошибка подпроцесса IDLE Python?
- Почему скобка напечатана в Python 2.7?
- Клиент SOAP для Python 3
- Как переименовать файл с кодировкой без ASCII-символа в ASCII
- «Ошибка имени: имя« get_ipython »не определено» при подготовке сеанса отладки через «import ipdb»
- Установка и импорт модулей Python на OS X
- Django - Как создать POST с внешним ключом, определенным в URL?
- Фильтр шаблонов Django strip_tags добавляет пространство
- Базовое преобразование в python с заданной строкой