New submission from Jason R. Coombs:

The built-in function 'input' appears to be sending the prompt to stderr 
instead of stdout, as the docs state it should.

$ python3.5 -c "print('stdout'); import sys; print('stderr', file=sys.stderr); 
input('foo')" 2> errors.txt
stdout
hello
$ cat errors.txt
stderr
foo

I've replicated this behavior in both Python 3.4 on Linux and Python 3.5 and 
2.7 on OS X. Here's the 2.7 test/output:

$ python2.7 -c "from __future__ import print_function; print('stdout'); import 
sys; print('stderr', file=sys.stderr); raw_input('foo')" 2> errors.txt
stdout
hello
$ cat errors.txt 
stderr
foo

I believe the stated behavior (outputting the prompt to stdout) is the proper 
behavior.

I figure I must be doing something wrong here, because it seems bizarre to me 
that this discrepancy hasn't been discovered before.

----------
messages: 255072
nosy: jason.coombs
priority: normal
severity: normal
status: open
title: input function outputs prompt to stderr
versions: Python 2.7, Python 3.3, Python 3.4, Python 3.5, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25692>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to