在Python中将十六进制字符串转换为char

时间:2019-12-26 01:30:41

标签: python hex

Python显示文字字符串值,并在控制台中使用转义代码:

>>> x = '\x74\x65\x73\x74'
>>> x
'test'
>>> print(x)
test

从文件读取时如何做?

$ cat test.txt 
\x74\x65\x73\x74

$ cat test.py 
with open('test.txt') as fd:
    for line in fd:
        line = line.strip()
        print(line)

$ python3 test.py
\x74\x65\x73\x74

2 个答案:

答案 0 :(得分:1)

使用字符串编码和解码功能

请参考this了解python标准编码

对于python 2

Son

对于python3

line = "\\x74\\x65\\x73\\x74"
line = line.decode('string_escape')
# test

答案 1 :(得分:0)

读取binary mode中的文件,以将十六进制表示形式保留为类似字节的转义十六进制字符序列。然后使用bytes.decode将类似字节的对象转换为常规str。您可以使用unicode_escape特定于Python的编码作为编码类型。

$ cat test.txt
\x74\x65\x73\x74

$ cat test.py
with open('test.txt', "rb") as fd:
    for line in fd:
        print(line)
        print(line.decode("unicode_escape"))

$ python3 test.py
b'\\x74\\x65\\x73\\x74\n'
test