Python将整数字符串转换为Ascii

2024-06-16 13:05:19 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我在一个有NFC标签阅读器的项目上工作。所有的数据都以十进制值存储,我设法跟踪我需要的数据,并从中删去每一个特殊字符。我现在想把它转换成ascii,这样它就可以打印出一个可读的数据版本。在

变量setvar是一个字符串,其值为“84 97 103 32 78 117 109 98 101 114 32 49”

这是我尝试使用的代码:

print "ASCII value: ", ´,´.join(str(chr(c)) for c in setvar)

遗憾的是,这会产生一个错误,即该函数需要整数。现在我的下一步是将字符串转换为数组(?)然后用循环读取数组中的每一项。遗憾的是我不知道该怎么做。在

怎么做?在


Tags: 数据项目字符串代码版本ascii标签数组
3条回答

要拆分字符串,而不是迭代字符,然后转换为int,然后返回char:

In [5]: [chr(int(c)) for c in x.split(' ')]
Out[5]: ['T', 'a', 'g', ' ', 'N', 'u', 'm', 'b', 'e', 'r', ' ', '1']

你可以试试这个:

print ', '.join(chr(int(i)) for i in setvar.split())

chr将把任何整数转换成它的字母ASCII字母。在

我只需要解码对应的bytes。在

>>> s = "84 97 103 32 78 117 109 98 101 114 32 49"
>>> bytes(map(int, s.split())).decode()
'Tag Number 1'

(请注意,decode可以采用可选的encoding参数,默认值是'utf-8'。)

相关问题 更多 >