给定以下 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
>>>
$
Echo 产生 print 4*2
。 Python 即使在交互模式下,也会将其视为要解释的输入。因此我们在那里看到了 8。此后,解释器遇到 EOF
,因此它退出。考虑一下退出解释器时按的是什么 - Ctrl+d
或 ^D
。这只是在 *nix 上生成 EOF
的另一种方法。
关于从 stdin 读取时,python 交互模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12803403/