Cette page traite de la lecture et de la sauvegarde d'un objet BitVector dans un fichier.
Dans ce qui suit, on suppose avoir fait l'import suivant :
>>> from BitVector import BitVector
On peut sauvegarder des BitVectors dont la longueur est un multiple de 8, comme suit :
>>> from BitVector import BitVector
>>> bv = BitVector(bitstring = "1101111000111100")
>>> len(bv)
16
>>> fichier = open('sortie.bits','wb')
>>> bv.write_to_file(fichier)
>>> fichier.close()
Le fichier a bien été créé :
>>> from glob import glob
>>> glob('*bits')
['sortie.bits']
Et si l'on regarde son contenu :
$ more sortie.bits �<
A chaque paquet de 8 bits a été associé un caractère.
Pour lire un fichier de bits, on utilise le constructeur BitVector avec l'argument filename :
>>> from BitVector import BitVector >>> bv = BitVector(filename = 'sortie.bits')
Cet objet n'est pas directement exploitable : on doit lire dedans le nombre de bits voulu, qui doit être à nouveau un multiple de 8. On crée ainsi un nouveau BitVector...
>>> bv1 = bv.read_bits_from_file(8) >>> print bv1 11011110 >>> bv2 = bv.read_bits_from_file(8) >>> print bv2 00111100 >>> bv3 = bv.read_bits_from_file(8) >>> print bv3
On peut encore écrire un BitVector directement dans un objet stream...
>>> fp_write = StringIO.StringIO() >>> bitvec.write_bits_to_fileobject( fp_write ) >>> print fp_write.getvalue() # 111100001111