我在Spyder 3.1.3中使用Python 3.5。输入以下代码时,x
有一个空字符串。我不要求任何用户输入。光标直接转到下一行
import sys
x = sys.stdin.read()
print(x)
那么在执行这段代码之后,x = ''
那么这里发生了什么?
答案 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)