Python 一行打印从 ASCII 数字转换的文本?
Python one-liner to print text converted from ASCII numbers?
以下命令从它的 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
,是否可以在一行中将其转换为 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 ~]$
$ 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
怎么样
python -c 'print "".join(unichr(int(c)) for c in "72 101 108 108 111 32 87 111 114 108 100".split(" "))'
用 +
或 ,
分隔 unichr()
调用将有效。
示例:python -c "print unichr(72)+unichr(73),unichr(65)"
打印 HI A
您可以看到 +
连接并且 ,
在两者之间添加了一个 space。
因此,您可以在 unichr()
函数调用之间使用 +
运算符
以下命令从它的 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
,是否可以在一行中将其转换为 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 ~]$
$ 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
怎么样
python -c 'print "".join(unichr(int(c)) for c in "72 101 108 108 111 32 87 111 114 108 100".split(" "))'
用 +
或 ,
分隔 unichr()
调用将有效。
示例:python -c "print unichr(72)+unichr(73),unichr(65)"
打印 HI A
您可以看到 +
连接并且 ,
在两者之间添加了一个 space。
因此,您可以在 unichr()
函数调用之间使用 +
运算符