Я зовсім недавно перейшов на 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 "') ..