如何从标准输入读取?

1781 投票
25 回答
2145683 浏览
提问于 2025-04-15 14:27

我该怎么从 stdin 读取数据呢?有些 代码挑战 要求使用 stdin 来输入数据。

25 个回答

591
import sys

for line in sys.stdin:
    print(line)

请注意,这样做会在最后加上一个换行符。如果想去掉最后的换行符,可以使用 line.rstrip(),正如 @brittohalloran 所说的那样。

833

有几种方法可以做到这一点。

  • sys.stdin 是一个像文件一样的对象,你可以用它来调用 readreadlines 函数。如果你想读取所有内容,或者想读取所有内容并自动按行分割,这个方法很有用。(要使用这个功能,你需要先 import sys。)

  • 如果你想要 提示 用户输入,可以在 Python 2.X 中使用 raw_input,在 Python 3 中直接使用 input

  • 如果你只是想读取命令行选项,可以通过 sys.argv 列表来访问它们。

你可能会发现 这篇关于 Python 输入和输出的维基书文章 也是一个很有用的参考。

1141

使用 fileinput 模块:

import fileinput

for line in fileinput.input():
    pass

fileinput 会遍历你在命令行中指定的文件名里的所有行,如果没有提供文件名,它会读取标准输入。

注意:line 变量会包含一个换行符;如果你想去掉它,可以用 line.rstrip()

撰写回答