是否可以将文件文本/图像/mp3 转换为仅由其组成的二进制代码,然后例如在 python 或任何语言中进行操作。我在网上查了一下,二进制文件被提到了很多,但没有什么特别有用或连贯的。感谢您提供的任何信息,我已经完成了相当多的高级编程,所以现在我希望扩展一点。
问问题
206 次
2 回答
0
二进制文件只是一个字节数组,大多数编程语言都处理数组,没有“二进制代码”转换要做。然后存在二进制格式来区分文件类型(例如,mp3 中的图像),因为如果您首先赋予它们含义,您只能解释原始字节。
于 2014-08-31T21:58:19.200 回答
0
如果要操作二进制文件,请使用rb
(读取二进制)和(写入二进制wb
)文件模式:
with open('binary_file.mp3', 'rb') as f:
first_byte = f.read(1)
需要明确的是,所有文件都是二进制文件。一些二进制文件可以解释为文本文件,但它们仍然以二进制形式存储在下面。这样想,文件就是一串数字,数字只能在 0 到 255 范围内。然后在 60 和 70 年代,一些美国人认为如果你看到数字 65,它实际上是大写字母“A ",然后 66 是 "B" 等等。然后 97 是小写 "a" 98 是 "b" 等等。我们永远不会使用大于 127 的数字。您可以提出自己的数字到字母的映射(以及其他不同国家的人都这样做了),但您可能应该使用人们或多或少都同意使用的映射,称为ASCII(及其扩展名,UTF-8)。如果您想查看文件背后的实际数字,您需要一个十六进制编辑器。但它们代表的数字不像我们习惯的那样。
如果您想查看文件的实际 1 和 0 是什么,只需使用它(:=
运算符需要 Python 3.8+)
with open('binary_file_name', 'rb') as f:
while byte := f.read(1):
print(f'{ord(byte):08b}')
于 2014-08-31T22:18:00.387 回答