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