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

标签 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 控制台中???

最佳答案

考虑这个 -

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

相关文章:

python - 编写 django 登录页面(使用 Bootstrap)

bash - 用于将文件上传到我的保管箱的格式错误的路径

linux - VIM:如何在 Ubuntu 上精确到行

linux - 如何在 Ubuntu 中重置 bashrc 以删除用户编写的导出 $path

python - 从命令提示符激活虚拟环境返回 "The system cannot find the path specified"但无论如何激活 Venv?

json - 在 jupyter lab 上使用 pyvis 在网络节点上单击事件

python - 绘制 x 和 y 值,结果为颜色/热图

python - 从元组中取出一个字符串 - python

python - 你如何检查一个python方法是否被绑定(bind)?

python - Python 中 devar 的模拟