我继承了一个项目,我是Python的新手。我需要做的是从二进制文件中读取记录。我需要读取每个字节以放入一个bytearray进行处理。输入记录可以嵌入/n
或任何其他二进制值。程序当前读取文件,直到达到/n
并停止读取。
因此,具有36个字节的记录将在位置4中找到第一个/n
并且退出读取。
我需要能够阅读/n
以便在程序中进行处理。如何让它读取所有字节?
这是当前文件读取行:
lcounter = 0
fline = open(inputFileName, 'rb')
while True:
DataRead = fline.readline().rstrip() # I don't want the last /n in each record
if lcounter == 0:
processLineOne()
else:
if lcounter == 1:
aryDataRead = [DataRead]
elif lcounter == 2:
aryDataRead.append(DataRead)
elif lcounter == 3:
aryDataRead.append(DataRead)
fline.close()
break
lcounter += 1
ProcessDataRead()
记录3有36个字节,但只在数组中放3个,因为字节4是\n
。如何保留\n
?感谢
答案 0 :(得分:0)
好的想通了。 此代码读取文件中的所有字节 然后我可以做我需要做的处理。
fline = open(inputFileName, 'rb')
low_bit_list = [byte for byte in bytearray(fline.read())]
print("low_bit_list", low_bit_list)
low_bit_list [178,53,203, 10 ,55,48,48,13,10]
注意我在/ n(10)字节之后得到了记录的其余部分
感谢所有建议。