Niedawno przeprowadziłem migrację do Py 3.5. Ten kod działał poprawnie w Pythonie 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
Po aktualizacji do wersji 3.5 otrzymuję:
TypeError: a bytes-like object is required, not 'str'
błąd w ostatnim wierszu (kod wyszukiwania wzoru).
Próbowałem użyć .decode()
funkcji po obu stronach instrukcji, próbowałem też:
if tmp.find('some-pattern') != -1: continue
- bez skutku.
Byłem w stanie szybko rozwiązać prawie wszystkie problemy 2: 3, ale to małe stwierdzenie mnie wkurza.
result = requests.get
i staram się x = result.content.split("\n")
. Jestem trochę zdezorientowany komunikatem o błędzie, ponieważ wydaje się sugerować, że result.content
jest to ciąg znaków i .split()
wymaga obiektu podobnego do bajtów. („wymagany jest obiekt podobny do bajtów, a nie„ str ””) ..