是否可以将文件text/image/mp3转换为其组成的二进制代码,然后用python或任何语言进行操作。我在网上浏览了一下,二进制文件被提到了很多,但没有什么特别有用或连贯的。谢谢你提供的任何信息,我已经完成了相当多的高级编程,所以现在我想扩展一点。
如果您想操作二进制文件,请使用rb
(readbinary)和wb
(writebinary)文件模式:
with open('binary_file.mp3', 'rb') as f:
first_byte = f.read(1)
需要明确的是,所有文件都是二进制的。一些二进制文件可以被解释为文本文件,但它们仍然以二进制形式存储在下面。这样想吧,一个文件是一系列的数字,数字只能在0到255之间。然后在60年代和70年代,一些美国人决定,如果你看到数字65,它实际上是大写字母";A";,则66是"0";B";那么97是小写";a";98是";b";等等,并且我们永远不会使用大于127的数字。你可以想出自己的数字到字母的映射(不同国家的其他人也这样做了),但你可能应该使用人们或多或少都同意使用的映射,它被称为ASCII(及其扩展名UTF-8)。如果你想查看文件背后的实际数字,你需要一个十六进制编辑器。但它们代表的数字不像我们习惯的那样
如果你想看看文件的实际1和0是什么,只需使用这个(:=
运算符需要Python3.8+)
with open('binary_file_name', 'rb') as f:
while byte := f.read(1):
print(f'{ord(byte):08b}')
二进制文件只是一个字节数组,大多数编程语言都处理数组,没有"二进制代码"转换。然后存在二进制格式来区分文件类型(例如mp3中的图像),因为只有在一开始就赋予原始字节含义的情况下,才能解释原始字节。