Я хочу сравнить байты в файле file.ser, который имеет 8-битные данные.Мне нужно найти первый ненулевой байт в начале кадра.Я использую red = mm.read (1), чтобы получить байт непосредственно из файла на диске, потому что файлы огромны.Мне кажется, что, хотя и если сравнивать данные int и не удается обеспечить правильное сравнение при попытке сравнить int (0) == b´ \ 00 и Byte (0) == b´ \ 00
«Если»отобразил тот же эффект, и моя попытка переопределить переменные, так как int превысила мои знания.
mm = mmap.mmap(f.fileno(),0) #0=read the whole file
red = 0 #This value is int
print ("Red ",red) #Confirm int
while red == 0: # This works First time
red = mm.read(1) # Now red is Byte
print ("Red = ",red, "Position ", mm.tell(),"\r" ) #red is b´\x00
red =red + 1# this fails as well
else:
print ("Red = ",red, "Position exit ", mm.tell() ) # exit because red is Byte
Первое сравнение может быть истинным, только если обе половины сравнения являются целыми.Все остальные случаи выходят из цикла while после одного цикла.PS. Дальнейшее расследование показывает, что (красный +1) терпит неудачу из-за несоответствия типов.Это, вероятно, потому что я не знаю, как изменить или сделать их совместимыми.