根据手册,raw_input写入stdout。我有这个小程序(test_raw_input.py):
raw_input
test_raw_input.py
# Test if rawinput writes to stdout or stderr raw_input('This is my prompt > ')
而且无论我如何运行:
$ python test_raw_input.py > xxx
要么
$ python test_raw_input.py 2> xxx
提示总是以结尾xxx。为什么会这样呢?
xxx
从您对KennyTM的回复中我了解到您的理解
python test_raw_input.py > xxx
这只是您不了解的第二种用法:
python test_raw_input.py 2> xxx
我认为您正在遇到此处描述的行为http://mail.python.org/pipermail/python- dev/2008-January/076446.html,从而导致错误报告http://bugs.python.org/issue1927,其中有一条评论说尚未于去年9月修复。
但是,有一种解决方法:如果您使用https://groups.google.com/forum/?fromgroups=#!topic/chennaipy/R_VJYNdel-o,
import readline
在使用之前raw_input,行为将符合您的预期。