Python 交互模式在从 std in 读取时不起作用



给定以下python脚本....

$ cat readStdin.py 
#!/usr/bin/python
import sys
var = "".join(sys.stdin.readlines()).rstrip()
print var

。我得到以下输出:

$ echo hello  | python -i readStdin.py 
hello
>>> 
$

。 换句话说,它不会挂在 Python 控制台中,而是回到 Bash。有没有人知道如何让它留在 python 控制台中???

考虑一下 -

$ echo print  4*2 | python -i
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
Type "help", "copyright", "credits" or "license" for more information.
>>> 8
>>> 
$

回声产生print 4*2 .Python即使在交互模式下,也认为这是要解释的输入。因此,我们在那里看到了 8。在此之后,口译员遇到EOF,所以它退出了。考虑一下您按下什么以退出口译员 - Ctrl+d^D。这只是在 *nix 上产生EOF的另一种方式。

最新更新