Python Bitarray в и из файла - PullRequest
4 голосов
/ 07 июня 2011

Я записываю большой битовый массив в файл, используя этот код:

import bitarray
bits = bitarray.bitarray(bin='0000011111') #just an example

with open('somefile.bin', 'wb') as fh:
    bits.tofile(fh)

Однако, когда я пытаюсь прочитать эти данные обратно, используя:

import bitarray
a = bitarray.bitarray()
with open('somefile.bin', 'rb') as fh:
    bits = a.fromfile(fh)
    print bits

, происходит сбой с«биты» являются NoneType.Что я делаю не так?

Ответы [ 2 ]

7 голосов
/ 07 июня 2011

Я думаю, "а" это то, что вы хотите. a.fromfile (fh) - это метод, который заполняет a содержимым fh: он не возвращает битовый массив.

>>> import bitarray
>>> bits = bitarray.bitarray('0000011111')
>>> 
>>> print bits
bitarray('0000011111')
>>> 
>>> with open('somefile.bin', 'wb') as fh:
...     bits.tofile(fh)
... 
>>> a = bitarray.bitarray()
>>> with open('somefile.bin', 'rb') as fh:
...     a.fromfile(fh)
... 
>>> print a
bitarray('0000011111000000')
1 голос
/ 07 июня 2011

Я думаю, что метод fromfile () ничего не возвращает.Значения хранятся в вашем bitarray ' a '.

...