如何从十六进制字符串的开头和结尾删除 b' 和 '?

问题描述 投票:0回答:1

我正在尝试将文件转换为十六进制,然后将其保存到 Python 中的文本文件中。

我的代码如下:

import binascii
isgdtxt = open(r"ISGD.txt", "w")
filename = input("Paste the file name here:")
with open(filename, "rb") as f:
    isgdfile = f.read()
prin = binascii.hexlify(isgdfile)
isgdtxt.write(str(prin))
isgdtxt.close()

它转换得很好,只是开头有

b'
,结尾有
'
,我想去掉它们。有谁知道怎么办吗

python string hex
1个回答
0
投票

开头的

b'
和结尾的
'
之所以存在,是因为
binascii.hexlify
返回一个 bytes 对象;当您使用
str()
将其转换为字符串时,它包含那些标记以指示它是字节对象。

要删除

b'
'
,您需要首先使用
.decode('utf-8')
方法将 bytes 对象解码为字符串。

这是更改后的代码。我测试了它,它对我来说非常有用。

import binascii
isgdtxt = open(r"ISGD.txt", "w")
filename = input("Paste the file name here:")
with open(filename, "rb") as f:
    isgdfile = f.read()
prin = binascii.hexlify(isgdfile)
hex_string = prin.decode('utf-8')
isgdtxt.write(hex_string)
isgdtxt.close()

在此处查看我的完整代码和结果

© www.soinside.com 2019 - 2024. All rights reserved.