用python将单个位写入文件

用python将单个位写入文件,python,file,byte,bits,Python,File,Byte,Bits,python中有没有一种方法可以写入少于1字节的数据 即使当我写入以1位表示的数字0时,文件大小也是1(8位)字节 我尝试了struct模块 file.write(struct.pack('b',0)) 阵列模块 import array data1=array.array('B') x=bin(0)[2:] data1.append(int(0,2)) f2=open('/root/x.txt','wb') data1.tofile(f2) 不,您不能写入少于一个字节的内容。字节是计算机可

python中有没有一种方法可以写入少于1字节的数据 即使当我写入以1位表示的数字0时,文件大小也是1(8位)字节

我尝试了struct模块

file.write(struct.pack('b',0))
阵列模块

import array
data1=array.array('B')
x=bin(0)[2:]
data1.append(int(0,2))
f2=open('/root/x.txt','wb')
data1.tofile(f2)

不,您不能写入少于一个字节的内容。字节是计算机可以处理的不可分割的内存量。硬件无法处理数据单位。1字节是非空文件的最小大小。我离开这里,OP在对公认答案的评论中提出了这一问题,这是一个很好的例子,说明了如何更好地利用只能写入字节的功能。但哈夫曼编码如何使用更少的位来表示最频繁的符号???@user1604573您可以传输一系列位,或者,如果需要,将一系列位保存到一个文件中,然后按需要解释它们,但一次只能写入一个字节。没有什么能阻止你一点一点地工作。如果您想在哈夫曼编码中存储类似“hello”的内容,那么位将如下所示:
101000011110000100110
,分解为字节
10100001
10011100
100110
。最后会有两个额外的位。您可以通过指示要读取多少位或文件中有多少个字符(开头有数字)来解决这个问题。