内容不匹配

时间:2013-04-03 13:29:20

标签: python binary

我正在使用python脚本将文件的数据复制到其他

input_file = open('blind_willie.MP3', 'rb')
contents = input_file.read()
output_file = open('f2.txt', 'wb')
output_file.write(contents)

当我使用文本编辑器打开f2时,我会看到这些符号:

ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿù`‘~ +Pg]Nñòs

有没有办法查看f2文件的二进制内容?

1 个答案:

答案 0 :(得分:4)

是的,有一种方法可以查看f2文件的二进制内容,并且您已经发现了它。这些符号代表文件的二进制内容。

如果您希望看到对二进制内容的人类可读解释,您将需要类似十六进制转储程序或十六进制编辑器的内容。

在Linux上,我使用hdod -t x1命令。

如果您想编写自己的十六进制转储命令,可以从以下其中一个开始:

或者您可以使用此代码:

def hd(data):
    """ str --> hex dump """
    def printable(c):
        import string
        return c in string.printable and not c.isspace()
    result = ""
    for i in range(0, len(data), 16):
        line = data[i:i+16]
        result += '{0:05x} '.format(i)
        result += ' '.join(c.encode("hex") for c in line)
        result += " " * (50-len(line)*3)
        result += ''.join(c if printable(c) else '.' for c in line)
        result += "\n"
    return result

input_file = open('blind_willie.MP3', 'rb')
contents = input_file.read()
output_file = open('f2.txt', 'wb')
output_file.write(hd(contents))