2014-08-31 74 views
-2

是否可以将文件text/image/mp3转换为由其构成的二进制代码,然后用python或其他语言进行操作。我在网上查了一下,二进制文件被提了很多,但没有什么特别有用或连贯的。感谢任何信息,我已经完成了一些高级编程,所以现在我正在寻找分支。二进制文件操作

+0

你是什么意思? MP3文件和jpeg文件已经是“二进制”(例如不可读的文本)格式。 – 2014-08-31 21:58:50

+0

尝试'od -xc YourBinaryFilename'来查看十六进制数据。 – 2014-08-31 22:00:46

回答

0

如果你想操纵蟒蛇二进制文件,使用rdwb文件模式(“读二进制”及“写入二进制”)

with open('binary_file', 'rb') as input_file: 
    byte = input_file.read(1) 

需要明确的是,所有的文件都是二进制。一些binray文件被解释为文本文件,但它们实际上只是伪装成字母映射的二进制文件。可以这样想,一个文件是一系列数字,数字只能在0到255之间。然后有人说,嘿,如果你看到数字65,它实际上是大写字母“A”,那么66是“B”等,然后97是小写“a”,98是“b”等。你可以找到all the mappings of numbers to letters on wikipedia, you've probably heard of ASCII, and that's what it is。如果您想查看文件底下的实际数字,您需要一个十六进制编辑器。但它们代表的数字不像我们习惯的那样。

如果你想看看有什么文件的实际一和零只使用这个

with open('binary_file_name', 'rb') as input_file: 
    while input_file: 
     byte = input_file.read(1) 
     print '{0:08b}'.format(ord(byte)) 
0

二进制文件只是一个字节数组,大多数编程语言处理数组,没有“二进制代码”转换。然后存在二进制格式来告诉另一个文件类型(例如来自mp3的图像),因为如果你首先给它们一个含义,你就只能解释原始字节。