【发布时间】:2020-03-06 23:57:43
【问题描述】:
我需要将文件中的字节转换为 1 和 0 的字符串,
file = open("Some_File.jpg","rb")
data = file.read()
file.close()
binary = some_function(data)
print(binary)
>>> 0100101000010101001...
我已经设法通过首先将字节转换为 Base64 来获得等效的东西,但这会使字符串的大小非常长。我看过的其他问题是关于将二进制字符串转换为 字节,但我找不到任何相反的。
这个问题被标记为另一个问题的重复,但是这个问题正在将 字符串 转换为二进制。如果我想这样做,我会把它转换成 Base64,但是它太长了。我需要一种将“字节”直接转换为 1 和 0 字符串的方法
【问题讨论】:
-
“让它太长”是什么意思?您是否担心执行此操作所需的时间,或生成的二进制字符串的字面长度?无论您如何转换为二进制文件,后者的定义都是相同的(
8 * number_of_bytes字符)。 -
"但是这使得字符串的大小很长" 你期望结果是多长时间,为什么?为什么你认为“直接转换字节”会比转换“字符串”产生更短的结果?为什么您期望 base64 在这里会有所帮助?
-
@Aleon 两者,真的,因为我正在测试它的文件大约是 4KB,文件的结果是 49KB,大约需要一秒钟才能通过它
-
@Karl Knechtel 我使用 Base64 将字节转换为某种字符串,然后将该字符串转换为二进制
-
我正在使用它在我正在创建的算法中生成的二进制字符串,该算法将二进制数据转换为一种“Base 3.5”格式,占用正常字符串 1 的一半空间和 0 的
标签: python python-3.x binary byte