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



我得到了一个可以直接以文本或二进制形式打开的"*.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,,*73rn$GN'

最新更新