sys.stdin.read()返回空字符串

时间:2018-11-20 08:43:01

标签: python-3.x

我在Spyder 3.1.3中使用Python 3.5。输入以下代码时,x有一个空字符串。我不要求任何用户输入。光标直接转到下一行

import sys

x = sys.stdin.read()

print(x)

那么在执行这段代码之后,x = ''那么这里发生了什么?

2 个答案:

答案 0 :(得分:1)

当光标跳到换行符时,它已经开始从stdin读取,因此您输入的任何内容都会传递给变量x,一旦您从{{1 }}。

如果需要用户输入,可以使用:

stdin

答案 1 :(得分:1)

stdin和stdout是对主机OS的文件描述符的引用。您没有说明正在运行的系统,但是在Linux中却没有说明。初始化过程中的任何子进程都将共享相同的stdin / stdout。

例如,从命令行或终端运行时,可以将信息通过管道传递给它。

echo "Say something: " | ./yourscript.py

yourscript.py

#!/usr/bin/python

import sys

for line in sys.stdin.readlines():
    print('boom', line)