以下命令从ASCII代表中打印文本。
python -c "print unichr(72)"
E.g。
[user@linux ~]$ python -c "print unichr(72)"
H
[user@linux ~]$
但这只适用于单个角色。如果我有一个ASCII字符串,对72 101 108 108 111 32 87 111 114 108 100
说Hello World
,是否可以在Python中将其转换为一行?
我一直在尝试以下命令,但它没有用。
[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 ~]$
答案 0 :(得分:2)
$ 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'
unichr
。相反,使用:
>>> print("".join(chr(i) for i in (72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100)))
Hello World
答案 1 :(得分:1)
怎么样
python -c 'print "".join(unichr(int(c)) for c in "72 101 108 108 111 32 87 111 114 108 100".split(" "))'
答案 2 :(得分:1)
将unichr()
来电与+
或,
分开即可。
示例:python -c "print unichr(72)+unichr(73),unichr(65)"
打印HI A
您可以看到+
个联合,,
在其间添加空格。
因此,您可以在+
函数调用
unichr()
运算符