【问题标题】:Python read hex data in to ASCII file [closed]Python将十六进制数据读入ASCII文件[关闭]
【发布时间】:2020-06-29 07:48:37
【问题描述】:

我有一个“*.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 文本文件?

【问题讨论】:

标签: python hex ascii transform


【解决方案1】:

您可以使用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'

【讨论】:

  • 谢谢。我刚刚弄清楚:[bytes().fromhex(i).decode('ascii') for i in the_bytes] 但它并没有像您的解决方案那样简化。
猜你喜欢
  • 1970-01-01
  • 2015-09-10
  • 2015-01-03
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 2017-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多