使用bash echo命令输入到python单行代码中
我想用echo命令输入一个字符串,然后在Python的一行代码中对这个字符串进行凯撒密码加密。
我的老师给我的一个例子是这样的。
~ $ echo "Hello Holly." | python -c "import sys; [print(line) for line in sys.stdin]"
输出应该是:Hello Holly.
但是当我输入这个命令时,我得到了:
File "<string>", line 1
import sys; [print(line) for line in sys.stdin]
^
SyntaxError: invalid syntax
如果有人能告诉我哪里出错了,我会非常感激。我在Centos 6上使用的是Python 2.6。
谢谢。
2 个回答
0
看起来你在用Python 2,而你的老师在用Python 3。
6
在Python 2中,print
是一个语句,而不是一个函数。所以你可以试试下面的写法:
echo "Hello Holly." | python -c "import sys; print [line for line in sys.stdin]"
另外,你也可以用下面的方式来打印普通文本(感谢@mgilson):
echo "Hello Holly." | python -c "import sys; print ' '.join([line for line in sys.stdin])"