下面的命令打印它的ASCII代表的文本。
python -c "print unichr(72)"
例如。
[user@linux ~]$ python -c "print unichr(72)"
H
[user@linux ~]$
但这只适用于一个角色。如果我有一个ASCII字符串,比方说72 101 108 108 111 32 87 111 114 108 100
for Hello World
,那么是否可以用一行来转换它呢?
我一直在尝试以下命令,但没有奏效。
[user@linux ~]$ python -c "print unichr(72)" "unichr(72)"
H
[user@linux ~]$
..。
[user@linux ~]$ python -c "print unichr(72) unichr(72)"
File "<string>", line 1
print unichr(72) unichr(72)
^
SyntaxError: invalid syntax
[user@linux ~]$
..。
[user@linux ~]$ python -c "print unichr(72)(72)"
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: 'unicode' object is not callable
[user@linux ~]$
发布于 2017-12-04 06:49:52
$ python -c 'print "".join(unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100))'
Hello World
它是如何工作的
这将生成unicode字符列表:
>>> [unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)]
[u'H', u'e', u'l', u'l', u'o', u' ', u'W', u'o', u'r', u'l', u'd']
这将将字符列表组合为字符串:
>>> ''.join(unichr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100))
u'Hello World'
Python3版本
unichr
不再存在于python3中。相反,请使用:
>>> print("".join(chr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)))
Hello World
发布于 2017-12-04 06:50:22
怎么样
python -c 'print "".join(unichr(int(c)) for c in "72 101 108 108 111 32 87 111 114 108 100".split(" "))'
发布于 2017-12-04 06:51:24
将unichr()
调用与+
或,
分开就可以了。
示例:python -c "print unichr(72)+unichr(73),unichr(65)"
打印HI A
您可以看到+
级联,而,
在两者之间添加了一个空格。
因此,您可以在+
函数调用之间使用unichr()
运算符。
https://stackoverflow.com/questions/47627832
复制相似问题