python-3.x - sys.stdin.read() 返回空字符串
问题描述
我在 Spyder 3.1.3 中使用 Python 3.5。当我输入以下代码时,x
有一个空字符串。我没有被要求提供任何用户输入。光标直接转到下一行
import sys
x = sys.stdin.read()
print(x)
所以在执行这段代码之后,x = ''
这里发生了什么?
解决方案
标准输入和标准输出是对主机操作系统文件描述符的引用。您没有说明您正在运行的系统,但是在 Linux 中;作为初始化进程的子进程的任何进程都将共享相同的标准输入/标准输出。
例如,当从命令行或终端运行时,您可以将信息通过管道传输到其中。
echo "Say something: " | ./yourscript.py
你的脚本.py
#!/usr/bin/python
import sys
for line in sys.stdin.readlines():
print('boom', line)
推荐阅读
- java - 在 Android Studio Emulator 中播放的音频文件,但在我的实际手机(LG ARISTO 2 PLUS)上没有
- c++ - 如何使 bison-doc 的 calc++ 示例工作?
- python - 在维度内建立索引的最简单方法
- r - 在 R 中,如何从线性回归中获取选定变量而不是所有变量(F 检验)的 p 值(显着性水平)?
- html - css - 在所有屏幕尺寸的特定位置将 cta 放置在背景图像上
- c - 带有 2 个可执行文件的 Makefile 错误:“main”的多个定义
- javascript - 使用具有所有用户名的 forEach 创建一个数组
- php - 简单的html dom提取没有域名的链接
- linux - 使用 ksh 返回目录中行数最多的文件
- r - 如何删除R中的一个数字