我正在使用霍夫曼编码和解码算法在python中创建一个压缩项目。我必须创建一个尺寸更小的文件。我正在使用从霍夫曼树中得到的字节值,并将它们作为字符串文字(如'0100101')写入文件中,我想将其转换为相同的数字,以便将其存储为二进制数字。将字节转换为实际字节类型的字符串
1
A
回答
1
请参阅下面的代码,了解如何将表示一个文件中存储的二进制值的字符串列表写入另一个文件的字节。请注意,两种变体(使用过的和未使用过的)会给你相同的结果。
# lstStrBin = ['01001010','10100101','01001011']
lstStrBin = open("binaryToByteString_Cg.txt").readlines()
# byteArr = bytearray([int(strBin, 2) for strBin in lstStrBin])
bytesString = bytes([int(strBin, 2) for strBin in lstStrBin])
# print(byteArr) gives: bytearray(b'J\xa5K')
with open('binaryToByteString_Cg.bin', "wb") as f:
# f.write(byteArr)
f.write(bytesString)
的binaryToBytes.bin
含量(它是3个字节长和赛特示出)是:
P.S.在binariesFile.txt这里的内容:
01001010
10100101
01001011
ADDENDUM (2017-04-25)
:
继OP的要求(见注释),我在下面提供了转换的两个通道中的两个部分代码。该代码读取.txt
文件与01010101
类似的行,在.txt
文件中为每行写入一个二进制文件.bin-fromTxt
,然后使用单个字节读取.bin-fromTxt
文件并编写.txt-fromBin
文件,其中包含01010101
类似的行。 在该过程结束时,.txt-fromBin
文件将具有与.txt
文件相同的内容,表明第四次和后退转换成功。
with open('binaryToByteString_Cg.txt') as f_txt:
bytesString = bytes([int(strBin, 2) for strBin in f_txt.readlines()])
with open('binaryToByteString_Cg.bin-fromTxt', "wb") as f_bin:
f_bin.write(bytesString)
with open('binaryToByteString_Cg.bin-fromTxt', "rb") as f_bin:
bytesString = f_bin.read()
with open('binaryToByteString_Cg.txt-fromBin', "w") as f_txt:
for byte in bytesString:
f_txt.write("{0:{fill}8b}\n".format(byte, fill='0'))
万一binaryToByteString_Cg.txt
文件包含:
01010101
10101010
00001111
的binaryToByteString_Cg.bin-fromTxt
文件包含:
,并最终再次binaryToByteString_Cg.txt-fromBin
:
01010101
10101010
00001111
0
假设由“二进制数”你的意思是整数
>>> int('0100101', 2)
37
只需用您的字符串转换为整数内置有2
为基地int
功能。
+0
这不是我正在寻找的。我的意思是说,我有一个字符串,例如'0100101',我想将它作为一个二进制文件中的代码存储。我想与convertion –
相关问题
- 1. 将字符串[]转换为字节[] 2个字符转换为字节?
- 2. 将字符串转换为字节[]
- 3. Java - 将字节[]转换为字符串
- 4. 将字节转换为字符串
- 5. 将字符串转换为字节
- 6. 将字节[]转换为UTF8字符串
- 7. 字符串转换为字节转换
- 8. 将Java字符串转换为16字节的字节数组
- 9. 将字节值存储在字符串中?将字节转换为字符串?
- 10. 将单字节转换为字符串并返回字节
- 11. 将字节格式字符串转换为字节数组android
- 12. 如何将字节字符串转换为字节[]
- 13. 将字符串数组(字节值)转换为字节数组
- 14. 将字节字符串转换为python中的字符串
- 15. 的VBScript:Unicode字符串转换为字节
- 16. 将字符串转换为字节数组并将字节数组转换为字符串
- 17. C#将字节数组与字符串转换为字符串
- 18. 将字符串转换为字节字符串
- 19. 字节转换为字符串C#
- 20. 字符串转换为字节(0X ??)
- 21. 将字符串转换为xml节点
- 22. 将xml节点转换为字符串
- 23. 如何将字符串表示字节转换回字节?
- 24. 将字符串转换为字符后打印单字节
- 25. 如何将字符和字符串转换为字节数组?
- 26. 如何将字节[]转换为字节[]
- 27. 将数字转换为4字节的字符串
- 28. ruby将字符串中的类名转换为实际类
- 29. 将字符串转换为字符串的泛型类型
- 30. 从字符串到字节数组的strust2类型转换?
的帮助,因为我的文件包含更多元素的方式,它是抛出错误说:ValueError:字节必须在范围内(0,256) –
我将如何将它更改回字符串? @Claudio –