Python - 将整数字符串转换为 Ascii
Python - Convert string of integers to Ascii
目前我正在处理一个带有 NFC 标签的项目 reader。所有数据都以十进制值存储,我设法跟踪我需要的数据并从中删除每个特殊字符。我现在想将其转换为 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)
遗憾的是,这会产生一个错误,提示该函数需要整数。现在我的下一步是将我的字符串转换为数组(?)并使用循环读取该数组的每个项目。遗憾的是我不知道该怎么做。
怎么做?
您想拆分字符串,而不是遍历字符,然后转换为 int,然后再返回 char:
In [5]: [chr(int(c)) for c in x.split(' ')]
Out[5]: ['T', 'a', 'g', ' ', 'N', 'u', 'm', 'b', 'e', 'r', ' ', '1']
假设 setvar
是您的整数 ascii 值字符串:
print "ASCII value: " + ','.join(chr(int(c)) for c in setvar.split())
你可以试试这个:
print ', '.join(chr(int(i)) for i in setvar.split())
chr 会将任何整数转换为按字母顺序排列的 ASCII 字母。
你可以尝试这样的事情。
>>> s = "84 97 103 32 78 117 109 98 101 114 32 49"
>>> ''.join(chr(int(item)) for item in s.split())
'Tag Number 1'
>>>
我只是解码相应的 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'
。)
目前我正在处理一个带有 NFC 标签的项目 reader。所有数据都以十进制值存储,我设法跟踪我需要的数据并从中删除每个特殊字符。我现在想将其转换为 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)
遗憾的是,这会产生一个错误,提示该函数需要整数。现在我的下一步是将我的字符串转换为数组(?)并使用循环读取该数组的每个项目。遗憾的是我不知道该怎么做。
怎么做?
您想拆分字符串,而不是遍历字符,然后转换为 int,然后再返回 char:
In [5]: [chr(int(c)) for c in x.split(' ')]
Out[5]: ['T', 'a', 'g', ' ', 'N', 'u', 'm', 'b', 'e', 'r', ' ', '1']
假设 setvar
是您的整数 ascii 值字符串:
print "ASCII value: " + ','.join(chr(int(c)) for c in setvar.split())
你可以试试这个:
print ', '.join(chr(int(i)) for i in setvar.split())
chr 会将任何整数转换为按字母顺序排列的 ASCII 字母。
你可以尝试这样的事情。
>>> s = "84 97 103 32 78 117 109 98 101 114 32 49"
>>> ''.join(chr(int(item)) for item in s.split())
'Tag Number 1'
>>>
我只是解码相应的 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'
。)