如何从stdin读取?

我想做一些代码高尔夫的挑战,但它们都要求从stdin获取输入。我怎样才能在Python中得到这些呢?

你可以使用fileinput模块。

import fileinput

for line in fileinput.input():
    pass

fileinput 将循环浏览在命令行参数中指定为文件名的输入的所有行,如果没有提供参数,则循环浏览标准输入。

注意:"line "将包含一个尾部的换行符;要删除它,请使用 "line.rstrip()"。

评论(1)

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

  • sys.stdin]1 是一个类似于文件的对象,如果你想读取所有内容,你可以调用函数readreadlines,或者你想读取所有内容并自动用换行来分割。(你需要import sys才能工作)。

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

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

你可能会发现 Wikibook中关于Python中I/O的这篇文章 也是一个有用的参考。

评论(0)

这里是学习Python的内容。

import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."

在Unix上,你可以通过做以下事情来测试它。

% cat countlines.py | python countlines.py 
Counted 3 lines.

在Windows或DOS上,你可以这样做。

C:\> type countlines.py | python countlines.py 
Counted 3 lines.
评论(3)