ฉันเพิ่งย้ายไป 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 เกือบทั้งหมดได้อย่างรวดเร็ว แต่ข้อความเล็กน้อยนี้ทำให้ฉันรำคาญ