如何以十六进制读取文件

How to read files as hex

我希望能够得到一个具有任何扩展名的输入文件,并以十六进制或二进制形式读取它,但以字符串或其他形式读取。不像 python 中的 open(file_path, 'rb')。最好在 python 或 JS.

可以使用带有“x”格式的 print() 将一个字节格式化为 2 位十六进制字符串。使用 'rb' 文件模式以二进制模式打开文件,将文件流处理为字节序列。您可以一次读取一个数据块,然后一次一个字节地遍历每个块。

import sys

with open(sys.argv[1], 'rb') as fin:
    while True:
        data = fin.read(16)
        if len(data) == 0:
            break
        # iterate over each byte in byte sequence
        for b in data:
            print(' {:02x}'.format(b), end='')
        print()

如果 运行 上面的代码在源代码中,那么输出将是每行 16 个十六进制数字的序列。

输出:

69 6d 70 6f 72 74 20 73 79 73 0d 0a 0d 0a 77 69
74 68 20 6f 70 65 6e 28 73 79 73 2e 61 72 67 76
...
3d 27 27 29 0d 0a 20 20 20 20 20 20 20 20 70 72
69 6e 74 28 29 0d 0a

例如,第一行“import sys”输出为 69 6d 70 6f 72 74 20 73 79 73,后跟 0d 0a 用于 CR LF 字符。