Я совсем недавно перешел на Py 3.5. Этот код работал правильно в Python 2.7:
with open(fname, 'rb') as f:
lines = [x.strip() for x in f.readlines()]
for line in lines:
tmp = line.strip().lower()
if 'some-pattern' in tmp: continue
# ... code
После обновления до 3.5 я получаю:
TypeError: a bytes-like object is required, not 'str'
ошибка в последней строке (код поиска шаблона).
Я попытался использовать .decode()
функцию с обеих сторон оператора, а также попытался:
if tmp.find('some-pattern') != -1: continue
- но безрезультатно.
Мне удалось быстро решить почти все проблемы 2: 3, но это небольшое утверждение меня беспокоит.
result = requests.get
и я пытаюсь x = result.content.split("\n")
. Я немного сбит с толку сообщением об ошибке, потому что оно, похоже, подразумевает, что result.content
это строка и .split()
требует объект, похожий на байты .. ?? («Требуется подобный байту объект, а не« str »») ..