Когда я продолжаю записывать несколько строк в двоичный файл, я читаю только первую строку, а остальные строки пусты, python 3.x
lines = ['1-1:3|12rq2r-1:1|2-2:1|20hjk-10:1', '1-11:3|21-11:1|22yrety-12:1|23-13:1']
path = os.getcwd()+ '\\myfile.bin'
output = open(path, 'ab')
with open(inputFile,buffering=1000000) as f:
for line in lines:
comprass = zlib.compress(line.encode('utf-8'))
output.write(comprass)
Теперь я читаю все файла
path = os.getcwd()+ '\\myfile.bin'
with open(path, 'rb') as f:
count = 0
r = f.read()
txt = zlib.decompress(r).decode('utf-8')
В TXT мне удалось получить только строку 1
'1-1:3|12rq2r-1:1|2-2:1|20hjk-10:1'
Затем я пытаюсь прочитать его построчно:
path = os.getcwd()+ '\\myfile.bin'
with open(path, 'rb') as f:
line = f.readline()
while line:
txt = zlib.decompress(r).decode('utf-8')
print(txt)
line = f.readline()
но в строке - txt = zlib.decompress(r).decode('utf-8')
Я получаю сообщение об ошибке:
txt = zlib.decompress (line) .decode ('utf-8') zlib.error: Ошибка -5 при распаковке данных: неполная или усеченная stream
Я думаю, что проблема возникает из-за того, что я продолжаю писать в файл, а вы не можете вставить перенос строки.
Есть ли другой способ вручную добавить строку в двоичный файл ? Спасибо!