2011-06-07 120 views
3

我使用这个代码写一个大bitarray到一个文件:蟒蛇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 

它'位'是一个NoneType失败。我究竟做错了什么?

+0

尝试一下调试。写作还是阅读失败?文件写入后是否存在并包含数据? – 2011-06-07 14:09:33

回答

5

我认为“a”是你想要的。 a.fromfile(fh)是一个用fh的内容填充a的方法:它不返回一个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') 
+0

**注意**:似乎该bitarray先保存到文件之前通过附加零来转换为字节 – zyxue 2015-09-17 17:33:23

1

我认为FROMFILE()方法不返回任何东西。这些值存储在您的bitarray'a'中。