gpt4 book ai didi

python - 在 python 中将位数组写入文件?

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:57 25 4
gpt4 key购买 nike

我正在尝试将坑数组写入 python 中的文件,如本例所示:python bitarray to and 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 函数将二进制数据写入二进制文件。一个全为 0 的 10 位长的 bitarray 将被输出为两个字节的 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')

关于python - 在 python 中将位数组写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com