6

次のコードを使用して、大きな bitarray をファイルに書き込んでいます。

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

「bits」が NoneType で失敗します。私は何を間違っていますか?

4

2 に答える 2

10

「a」はあなたが望むものだと思います。a.fromfile(fh) は、a を fh の内容で埋めるメソッドです。bitarray は返しません。

>>> 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')
于 2011-06-07T14:12:08.077 に答える
1

fromfile()メソッドは何も返さないと思います。値は bitarray ' a ' に格納されます。

于 2011-06-07T14:12:45.677 に答える