我在Spyder 3.1.3中的Python 3.5上。当我输入以下代码时,x
有一个空字符串。我没有被要求任何用户输入。光标直接转到下一行
import sys
x = sys.stdin.read()
print(x)
所以在执行这段代码之后,x = ''
那么这里发生了什么?
当光标跳转到换行符时,它已经开始从stdin
读取,所以你输入的任何内容都会被传递给变量x
,然后一旦你从stdin
突破就重新打印。
如果您想要用户输入,您可以使用:
x = input('Say something: ')
stdin和stdout是对主机OS的文件描述符的引用。您没有说明您运行的系统,但是在Linux中;任何初始化过程的子进程都将共享相同的stdin / stdout。
例如,从命令行或终端运行时,可以将信息传递给它。
echo "Say something: " | ./yourscript.py
有人script.朋友
#!/usr/bin/python
import sys
for line in sys.stdin.readlines():
print('boom', line)