2011-06-07 117 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'中。