我想做一些代码高尔夫的挑战,但它们都要求从stdin获取输入。我怎样才能在Python中得到这些呢?
stdin
你可以使用fileinput模块。
fileinput
import fileinput for line in fileinput.input(): pass
fileinput 将循环浏览在命令行参数中指定为文件名的输入的所有行,如果没有提供参数,则循环浏览标准输入。
注意:"line "将包含一个尾部的换行符;要删除它,请使用 "line.rstrip()"。
有几种方法可以做到这一点。
sys.stdin]1 是一个类似于文件的对象,如果你想读取所有内容,你可以调用函数read或readlines,或者你想读取所有内容并自动用换行来分割。(你需要import sys才能工作)。
sys.stdin
read
readlines
import sys
如果你想*提示用户输入,你可以在Python 2.X中使用raw_input,而在Python 3中只需要input。
raw_input
input
如果你实际上只想读取命令行选项,你可以通过 sys.argv 列表访问它们。
你可能会发现 Wikibook中关于Python中I/O的这篇文章 也是一个有用的参考。
这里是学习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.
你可以使用
fileinput
模块。fileinput
将循环浏览在命令行参数中指定为文件名的输入的所有行,如果没有提供参数,则循环浏览标准输入。注意:"line "将包含一个尾部的换行符;要删除它,请使用 "line.rstrip()"。
有几种方法可以做到这一点。
sys.stdin
]1 是一个类似于文件的对象,如果你想读取所有内容,你可以调用函数read
或readlines
,或者你想读取所有内容并自动用换行来分割。(你需要import sys
才能工作)。如果你想*提示用户输入,你可以在Python 2.X中使用
raw_input
,而在Python 3中只需要input
。如果你实际上只想读取命令行选项,你可以通过 sys.argv 列表访问它们。
你可能会发现 Wikibook中关于Python中I/O的这篇文章 也是一个有用的参考。
这里是学习Python的内容。
在Unix上,你可以通过做以下事情来测试它。
在Windows或DOS上,你可以这样做。