gpt4 book ai didi

python - 将文件转换为二进制文件(制作一个 hexdump)

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:46 25 4
gpt4 key购买 nike

我想像二进制编辑器一样显示转换为二进制的文件。

例如,它将 PNG 转换为 89 50 4E 47 0D 0A 1A 0A 00 00 00....

f = open(path, "r")
print f.read() # I want to convert this to binary
f.close()

请多多指教。

最佳答案

python 3

获取十六进制表示的二进制文件:

bin_data = open(path, 'rb').read()
import codecs
hex_data = codecs.encode(bin_data, "hex_codec")

如果 path 指的是一个 PNG 文件,那么 bin_data 的前几个字节看起来像 \x89PNG\r\nhex_data 的开头看起来像 89504e470d0a。要很好地格式化它,请添加空格:

import re
hex_with_spaces = re.sub('(..)', r'\1 ', hex_data)

hex_with_spaces 的相应前几个字节看起来像 89 50 4e 47 0d 0a

作为编解码器的替代方案,可以使用binascii:

import binascii
hex_data = binascii.hexlify(bin_data)

参见 jfs 的 answer有关使用 binascii 的更详细示例。

python 2

获取十六进制表示的二进制文件:

bin_data = open(path, 'rb').read()
hex_data = bin_data.encode('hex')

如果 path 指的是一个 PNG 文件,那么 bin_data 的前几个字节看起来像 \x89PNG\r\nhex_data 的开头看起来像 89504e470d0a。要很好地格式化它,请添加空格:

import re
hex_with_spaces = re.sub('(..)', r'\1 ', hex_data)

hex_with_spaces 的相应前几个字节看起来像 89 50 4e 47 0d 0a

关于python - 将文件转换为二进制文件(制作一个 hexdump),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com