Чтение 1 строки при записи нескольких строк в двоичном файле в python - PullRequest
1 голос
/ 20 января 2020

Когда я продолжаю записывать несколько строк в двоичный файл, я читаю только первую строку, а остальные строки пусты, 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

Я думаю, что проблема возникает из-за того, что я продолжаю писать в файл, а вы не можете вставить перенос строки.

Есть ли другой способ вручную добавить строку в двоичный файл ? Спасибо!

...