根据手册,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
. 为什么会这样?
从您对 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
,行为将如您所愿。