首页 > 解决方案 > sys.stdin.read() 返回空字符串

问题描述

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

import sys

x = sys.stdin.read()

print(x)

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

标签: python-3.x

解决方案


标准输入和标准输出是对主机操作系统文件描述符的引用。您没有说明您正在运行的系统,但是在 Linux 中;作为初始化进程的子进程的任何进程都将共享相同的标准输入/标准输出。

例如,当从命令行或终端运行时,您可以将信息通过管道传输到其中。

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

你的脚本.py

#!/usr/bin/python

import sys

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

推荐阅读