[英]Write bitarray to file in python?
我正在尝试将一个坑数组写入python中的文件,如下例所示: python bitarray to和from file
但是,我在实际的测试文件中得到了垃圾:
test_1 = ^@^@
test_2 = ^@^@
码:
from bitarray import bitarray
def test_function(myBitArray):
test_bitarray=bitarray(10)
test_bitarray.setall(0)
with open('test_file.inp','w') as output_file:
output_file.write('test_1 = ')
myBitArray.tofile(output_file)
output_file.write('\ntest_2 = ')
test_bitarray.tofile(output_file)
任何有关出错的帮助将不胜感激。
那不是垃圾。 tofile
函数将二进制数据写入二进制文件。 一个10位长的bitarray
全0将输出为0的两个字节。(文档解释说,当长度不是8的倍数时,它用0位填充。)当你把它读作文本时,两个0字节看起来像^@^@
,因为^@
是(许多)程序将0字节表示为文本的方式。
如果您想要一个人类可读的文本友好表示,请使用to01
方法,该方法返回一个人类可读的字符串。 例如:
with open('test_file.inp','w') as output_file:
output_file.write('test_1 = ')
output_file.write(myBitArray.to01())
output_file.write('\ntest_2 = ')
output_file(test_bitarray.to01())
或许你想要这个:
output_file(str(test_bitarray))
......这会给你一些类似的东西:
bitarray('0000000000')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.