Gần đây tôi đã di chuyển đến Py 3.5. Mã này đã hoạt động đúng trong 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
Sau khi nâng cấp lên 3.5, tôi nhận được:
TypeError: a bytes-like object is required, not 'str'
lỗi trên dòng cuối cùng (mã tìm kiếm mẫu).
Tôi cũng đã thử sử dụng .decode()
chức năng ở hai bên của câu lệnh, cũng đã thử:
if tmp.find('some-pattern') != -1: continue
- vô ích.
Tôi đã có thể giải quyết gần như tất cả các vấn đề 2: 3 một cách nhanh chóng, nhưng tuyên bố nhỏ này đang làm tôi khó chịu.
result = requests.get
và tôi cố gắng x = result.content.split("\n")
. Tôi hơi bối rối bởi thông báo lỗi bởi vì nó dường như ngụ ý đó result.content
là một chuỗi và .split()
đang yêu cầu một đối tượng giống như byte .. ?? ("một đối tượng giống byte là bắt buộc, không phải 'str"') ..