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

问题描述 投票:0回答:2

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

import sys

x = sys.stdin.read()

print(x)

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

python-3.x
2个回答
1
投票

当光标跳转到换行符时,它已经开始从stdin读取,所以你输入的任何内容都会被传递给变量x,然后一旦你从stdin突破就重新打印。

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

x = input('Say something: ')

1
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.