Python、十六进制和普通文件签名

Python, Hex and common file signatures

我从系统还原中获得了一些文件,这些文件在文件的前面填充了奇数位的数据,这使得它在打开时变得乱七八糟。我有一个我收集的文件签名的文本文件,其中包含目前这样表示的信息:

Sig_MicrosoftOffice_before2007= \xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1

我打算读取文本文件并使用数据在损坏文件的数据中识别正确的 header,然后删除它之前的所有内容——希望之后留下一个可读文件。不过,我一直在研究如何最好地将这些数据以可读格式导入 python。

我的第一次尝试只是从文件中读取值,但正如 python 所做的那样,它将反斜杠表示为转义字符。这是实现我需要的最佳方法吗?我是否需要考虑以其他方式表示文本文件中的数据?或者也许在字典里?如果您能提供任何帮助,我们将不胜感激。

您可以使用 string_escape 编解码器 (Python 2) 或 unicode_escape 编解码器 (Python 3 或者当您有给我们 Python 2):

中的 Unicode
>>> r'\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1'
'\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1'
>>> r'\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1'.decode('string_escape')
'\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1'