从Python中的标准输入读取一行

时间:2011-08-06 10:32:40

标签: python input language-features

以下两种从标准输入读取一行的方法之间有什么区别(如果有):raw_input()sys.stdin.readline()?在哪种情况下,这些方法中的一种优于另一种?

2 个答案:

答案 0 :(得分:36)

raw_input()采用可选的prompt参数。它还从它返回的字符串中删除尾随的换行符,并在加载readline模块时支持历史记录功能。

readline()采用可选的size参数,不会删除尾随的换行符,也不支持历史记录。

由于他们没有做同样的事情,他们并不是真的可以互换。我个人更喜欢使用raw_input()来获取用户输入,并readline()来读取文件中的行。

答案 1 :(得分:9)

“但是,从许多Python初学者和教育工作者的角度来看,使用sys.stdin.readline()会出现以下问题:

  1. 与名称“raw_input”相比,名称“sys.stdin.readline()”笨重且不够优雅。

  2. 名称“sys”和“stdin”对于大多数初学者没有意义,他们主要对函数的作用感兴趣,而不是它所在的包结构中的位置。缺乏意义也使人难以记住:是“sys.stdin.readline()”还是“stdin.sys.readline()”?对于编程新手来说,没有任何明显的理由偏爱另一个。相比之下,函数简单和直接的名称,如print,input,raw_input和open更容易记住。“从这里开始:http://www.python.org/dev/peps/pep-3111/