Я использую Python 3.7.По какой-то причине мой код читает двоичные файлы как строковые входы вместо двоичных объектов.Я не могу понять, что является причиной этого, и то, что я написал, похоже, соответствует тому, что другие люди используют в своих решениях для чтения двоичного файла.
import sys
filename = sys.argv[1]
with open(filename, "rb") as f:
byte = f.read(1)
while byte:
print(byte)
print(type(byte))
byte = f.read(1)
Я думаю, это может быть связано с тем, каккод, который написал бинарный файл написан.Вот код для этого:
messages=[[101,1,0,2,10,3,1,4,0],
[101,1,1,2,9,3,1,4,0],
[101,1,2,2,8,3,1,4,0],
[101,1,3,2,7,3,1,4,0],
[101,1,4,2,6,3,1,4,0],
[101,1,5,2,5,3,0,4,1],
[101,1,6,2,4,3,0,4,1],
[101,1,7,2,3,3,0,4,1],
[101,1,8,2,2,3,0,4,1],
[101,1,9,2,1,3,0,4,1],
[101,1,10,2,0,3,0,4,1]]
newFile = open("testData.bin", "wb")
for message in messages:
line=[]
for value in message:
bValue=value.to_bytes(1, byteorder='big',signed=False)
line.append(bValue)
newFile.write(bValue)
Мои текущие результаты состоят в том, что первая строка выводит значение ascii файла, а вторая - что это строка.