Python 将十六进制数据读入 ASCII 文件

Python read hex data in to ASCII file

我得到一个“*.txt”文件,可以直接打开为文本或二进制文件。文件中记录的数据如下:

"24 47 4E 47 47 41 2C 31 35 33 34 34 32 2E 30 30 30 2C 33 31 20 33 2E 35 31 37 36 2C 4E 2C 31 32 31 32 33 2E 30 35 33 36 2C 45 2C 31 2C 30 36 2C 34 2E 39 34 30 33 37 30 2C 32 32 2E 39 39 35 35 33 35 2C 4D 2C 2C 4D 2C 2C 2A 37 33 0D 0A 24 47 4E"

每一个实际上都是一个十六进制表示的字符。例如“24”是 ASCII“#”,“47”是 ASCII“G”。如何直接将文件转换成Python中的ASCII文本文件?

您可以使用 chr 函数将整数值(Unicode 代码点)转换为字符:

>>> string = "24 47 4E 47 47 41 2C 31 35 33 34 34 32 2E 30 30 30 2C 33 31 20 33 2E 35 31 37 36 2C 4E 2C 31 32 31 32 33 2E 30 35 33 36 2C 45 2C 31 2C 30 36 2C 34 2E 39 34 30 33 37 30 2C 32 32 2E 39 39 35 35 33 35 2C 4D 2C 2C 4D 2C 2C 2A 37 33 0D 0A 24 47 4E"
>>> "".join([chr(int(c, 16)) for c in string.split()])
    '$GNGGA,153442.000,31 3.5176,N,12123.0536,E,1,06,4.940370,22.995535,M,,M,,*73\r\n$GN'