从stdin读取时,python交互模式不起作用

时间:2012-10-09 15:25:56

标签: python bash python-interactive

给出以下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控制台???

1 个答案:

答案 0 :(得分:3)

考虑一下 -

$ 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
>>> 
$

Echo产生print 4*2。即使在交互模式下,Python也将其视为要解释的输入。因此我们在那里看到8。在此之后,解释器遇到EOF,因此它退出。考虑一下您要退出解释器的内容 - Ctrl+d^D。这只是在* nix上生成EOF的另一种方法。