use*_*250 8 python binary python-2.7
我想读取文件的原始二进制文件并将其放入字符串中.目前我打开一个带有"rb"标志的文件并打印字节,但它会以ASCII字符形式出现(对于文本来说,对于视频和音频文件,它会给出符号和乱码).如果可能的话,我想获得原始的0和1.这需要适用于音频和视频文件,因此简单地将ascii转换为二进制文件不是一种选择.
file = open(filePath, "rb")
with file:
byte = file.read(1)
print byte
Run Code Online (Sandbox Code Playgroud)
得到二进制表示我认为你需要导入binascii,然后:
byte = f.read(1)
binary_string = bin(int(binascii.hexlify(byte), 16))[2:].zfill(8)
Run Code Online (Sandbox Code Playgroud)
或者,细分:
import binascii
filePath = "mysong.mp3"
file = open(filePath, "rb")
with file:
byte = file.read(1)
hexadecimal = binascii.hexlify(byte)
decimal = int(hexadecimal, 16)
binary = bin(decimal)[2:].zfill(8)
print("hex: %s, decimal: %s, binary: %s" % (hexadecimal, decimal, binary))
Run Code Online (Sandbox Code Playgroud)
将输出:
hex: 64, decimal: 100, binary: 01100100
Run Code Online (Sandbox Code Playgroud)
您正在阅读的内容实际上是"二进制"文件的"原始二进制"内容.看起来很奇怪,二进制数据不是"0和1",而是二进制字(又名字节,参见http://en.wikipedia.org/wiki/Byte),它们具有整数(基数10)值并且可以被解释as ascii chars.或者作为整数(通常是二进制操作的方式).或者以十六进制表示.对于它的价值,"文" 是实际上是"原始二进制数据"太.
要获得"二进制"表示,您可以在这里查看:将二进制转换为ASCII,反之亦然,但这不会给您提供比实际更多的"原始二进制数据"...
现在的问题是:为什么要将这些数据准确地称为"0和1"?
| 归档时间: |
|
| 查看次数: |
35213 次 |
| 最近记录: |