|
发表于 2023-3-31 11:36:25
|
显示全部楼层
本楼为最佳答案
你先参考一下这个,再说说跟你的需求有所出入的地方
你可以使用Python实现类似于Linux上的hexdump -C命令的效果。
下面是一个简单的Python程序,它读取一个二进制文件并将其十六进制内容打印到控制台上,类似于hexdump -C命令的输出:
- import sys
- def hexdump(file_path):
- with open(file_path, 'rb') as f:
- offset = 0
- while True:
- chunk = f.read(16)
- if not chunk:
- break
- hex_data = ' '.join(['{:02X}'.format(byte) for byte in chunk])
- text_data = ''.join([chr(byte) if 32 <= byte <= 126 else '.' for byte in chunk])
- padding = ' ' * (3 * (16 - len(chunk)))
- print('{:08X} {}{} {}'.format(offset, hex_data, padding, text_data))
- offset += 16
- if __name__ == '__main__':
- if len(sys.argv) < 2:
- print('Usage: python hexdump.py <file>')
- sys.exit(1)
- file_path = sys.argv[1]
- hexdump(file_path)
复制代码
要使用它,请在命令行中运行以下命令:
- python hexdump.py <file_path>
复制代码
其中,<file_path>是您要打印十六进制内容的文件的路径。该程序将打印文件的十六进制内容,类似于hexdump -C命令的输出。 |
|