繁体   English   中英

在python中将bitarray写入文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM